我正在Spring MVC 3中创建CRUD应用程序。除了编辑页面之外,每件事情都很好。我希望我的编辑页面中填充了一些带有相关数据库生成值的标签,因此我可以查看,编辑是否需要并保存它们。我传递了modelAttribute中的值列表以与edit.jsp共享。我可以在edit.jsp上检索它们的值,但是我无法将这些值放在tag中,因为它没有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>
答案 0 :(得分:5)
form:input没有值属性(正如您猜测的那样)。必须仅在path属性中提及数据绑定路径。因此,根据我对您的问题的理解,解决方案如下:
您有用户类:
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>