我在struts2中对Dispalytags应用了分页。现在,我想在表中添加另外两列,例如“ EDIT”和“ DELETE”。在这里,我该如何传递我的ID值。我做了些什么,但是它抛出NumberFormatException。下面是我的代码:
Register.jsp
<s:form action="addUser"> <s:hidden name="user.id" /> <s:textfield key="user.name" /> <s:password key="user.password" /> ------------ ------ </s:form>
List.jsp
<display:table id="id" name="userList" pagesize="5" cellpadding="5px;" cellspacing="5px;" style="margin-left:50px;margin-top:20px;" requestURI=""> <display:column property="name" title="name"/> --------- <display:column title="Edit"><s:url id="editURL" action="editUser"> <s:param name="id" value="%{userList.id}"></s:param></s:url> <s:a href="%{editURL}">Edit</s:a></display:column> </display:table>
在这里,当我单击编辑链接时,它将引发数字格式异常
异常在下面
java.lang.NumberFormatException: null in edit method id value==null --->here I am not getting Id value at java.lang.Long.parseLong(Long.java:404)
以下是“编辑操作”:
public String edit() { System.out.println("in edit"); HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST); System.out.println("id=="+request.getParameter("id")); user = userDAO.listUserById(Long.parseLong(request.getParameter("id"))); return SUCCESS; }
您可以使用两种方式。
您可以将编辑选项放在用户名上。您可以将用户名作为链接来编辑用户,而将其作为链接删除。
<display:table id="id" name="userList" pagesize="5" cellpadding="5px;" cellspacing="5px;" style="margin-left:50px;margin-top:20px;" requestURI=""> <display:column property="name" href="editUser" media="html" paramId="id" paramProperty="id" title="name" /> <display:column title="Action" value="Delete" href="DeleteUser" media="html" paramId="id" paramProperty="id"/> </display:table>
或者,您可以再增加一列进行编辑。
<display:table id="id" name="userList" pagesize="5" cellpadding="5px;" cellspacing="5px;" style="margin-left:50px;margin-top:20px;" requestURI=""> <display:column property="name" title="name" /> <display:column title="Action" value="Edit" href="EditUser" media="html" paramId="id" paramProperty="id"/> <display:column title="Action" value="Delete" href="DeleteUser" media="html" paramId="id" paramProperty="id"/> </display:table>
在动作类中,创建一个名为 id* 的 Long 字段 *
private Long id; //getter and setter
在您的方法中,您可以只传递值。
编辑方法
user=userDao..listUserById(id);