我在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;
}
答案 0 :(得分:1)
你可以两种方式使用。
您可以将编辑选项放在用户名上。这是您可以用作编辑用户的链接和要删除的另一列的用户名。
<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 的长字段
private Long id;
//getter and setter
在你的方法中你可以传递值。
编辑方法
user=userDao..listUserById(id);