【发布时间】:2014-03-04 01:20:16
【问题描述】:
当我尝试在表单之间导航时,我无法弄清楚为什么我的 User 类的字段值消失了。
@Controller
public class WizardController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String userForm(@ModelAttribute("user") User user) {
return "form/userForm";
}
@RequestMapping(value = "/user", method = RequestMethod.POST)
public String processedForm(@ModelAttribute("user") User user, BindingResult result,
ModelMap model) {
if (result.hasErrors()) {
return "form/userForm";
}
ArrayList<String> p = new ArrayList<String>();
p.add("add_user");
p.add("delete_user");
model.addAttribute("permissions", p);
model.addAttribute("user", user);
return "form/permissionForm";
}
@RequestMapping(value = "/show", method = RequestMethod.POST)
public String show(@ModelAttribute("user") User user, BindingResult result) {
if (result.hasErrors()) {
System.out.println("Error");
return "show";
} else {
System.out.println(user);
return "show";
}
}
}
我的permissionForm.jsp
<form:form action="/show" method="post" modelAttribute="user">
<form:errors path="*" cssClass="errorblock" element="div"/>
<p>
<form:select path="permissions">
<form:options items="${permissions}"/>
</form:select>
</p>
<p><input type="submit" value="Add"/></p>
</form:form>
userForm.jsp
<form:form action="/user" method="post" modelAttribute="user">
<form:errors path="*" cssClass="errorblock" element="div"/>
<p><form:input path="name" placeholder="Name"/></p>
<p><form:input path="age" placeholder="Age"/></p>
<p><form:input path="email" placeholder="Email"/></p>
<p><form:input path="password" placeholder="Password"/></p>
<p><input type="submit"></p>
</form:form>
在 show.jsp 上我正在渲染我的用户
${user}
还有 POJO 类
public class User implements Serializable {
private String name;
private String email;
private String password;
private Integer age;
private List<String> permissions;
// getters, setters, toString
}
输出:用户{name='null', email='null', password='null', age=null, permissions=[delete_user]}。我需要一个完整的对象,像这样:
用户{name='John', email='john@gmail.com', password='12345', age=21, permissions=[delete_user]}。
感谢您的帮助。
【问题讨论】:
-
你研究过 sprint 网络流吗? projects.spring.io/spring-webflow
标签: java spring spring-mvc