java - 如何在Struts2中使用Displaytags传递Id值来执行编辑操作?

标签 java jsp struts2 displaytag

我在struts2中使用Dispalytags应用了分页。现在我想在我的表中添加两列,例如“编辑”和“删除”。这里我如何传递我的ID值。我做了一些事情,但它抛出了 NumberFormatException。 下面是我的代码:

注册.jsp

<s:form action="addUser">
<s:hidden name="user.id" />
<s:textfield key="user.name" />
<s:password key="user.password" />
------------
------
</s:form>

列表.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>

在您的操作类中创建一个名为 idLong 字段

private Long id;
//getter and setter

在您的方法中,您可以只传递值。

编辑方法

user=userDao..listUserById(id);

关于java - 如何在Struts2中使用Displaytags传递Id值来执行编辑操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20812145/

相关文章:

java - 在 Java 中运行 .jar

java - Spring JPA :PropertyAccessException 1:. ..MethodInvocationException : .'driverClassName' . .. org/postgresql/Driver : Unsupported major. 次要版本 52.0

java - 使用 Apache POI 读取 Excel 文件中的数值时出现问题

java - Spring MVC : how to display formatted date values in JSP EL

java - 如何使用 Java 使用 SqlDataReader?

java - jsp 和 servlet 中的错误

java - 在struts2框架中,DTO由list<String>组成。它没有从 S :select tag 填充

java - Struts2 - 具有多种方法的 Action ?

java - 如何将复选框的多个值以param=value1%2Cvalue2格式发送到后端?

html - 在 html 表中显示来自 struts2 列表的值