2

我正在 Spring MVC 3 中创建 CRUD 应用程序。除了编辑页面之外,一切都运行良好。我希望我的编辑页面填充一些具有相关数据库生成值的标签,这样我就可以查看、编辑并保存它们。我在 modelAttribute 中传递了值列表以与 edit.jsp 共享。我可以在 edit.jsp 上检索它们的值,但是我无法将这些值放入标记中,因为它没有 value 属性。请帮忙。

Sharing the code below----------------------------

    enter code here
<form:form id="form5" commandName="user" action="modify.htm">
<table>
    <tr>
        <th>Name</th>
        <th>Age</th>
    </tr>
    <c:forEach items="${userList}" var="user">
        <tr>
            <td> <form:input path="name" value="${user.name}"/></td>
            <td><form:input path="age" value="{user.age}"/></td>
        </tr>
    </c:forEach>
    <tr><td><button type="button" onclick="modify()">Save</button></td></tr>
</table>
</form:form>
4

1 回答 1

5

form:input 没有 value 属性(如您所料)。数据绑定路径必须仅在路径属性中提及。因此,根据我对您的问题的理解,解决方案如下:

你有用户类:

public class User{
    String name;
    String age;
    //Getter setters..
}

您需要一个命令/模型对象类来保存 UserS 列表,以便在视图中使用(如下所示)

public class Users {
    List<User> userList; 
    //Getter setter..
} 

您的控制器处理程序方法可能会将用户添加到模型中

Users users = getUsers(); // Get them from somewhere(DB) and wrap in Users object
model.addAttribute("users", users);

在jsp中使用如下:

<form:form id="form5" modelAttribute="users" action="modify.htm">
    <table>
        <tr>
            <th>Name</th>
            <th>Age</th>
        </tr>
       <c:forEach items="${users.userList}" var="user" varStatus="i">
            <tr>
                <td><form:input path="userList[${i.index}].name" /></td>
                <td<form:input path="userList[${i.index}].age" /></td>
            </tr>
       </c:forEach>
       <tr><td><button type="button" onclick="modify()">Save</button></td></tr>
    </table>
</form>
于 2013-06-28T10:13:26.803 回答