我在Spring中有一个添加联系人流程,它将跨越多个页面,First Pages将采用文本输入,第二个页面将采取图像输入,第三个采用显示草稿。
第一页
@RequestMapping("/addContact")
public String registerContact(@ModelAttribute Contact contact) {
return "addContact";
}
@RequestMapping("/addContact")
第二页
@RequestMapping("/addImages")
public String registerImages(@Valid Contact contact, BindingResult result) {
return "addImages";
}
如何在页面之间维护联系人模型数据,以便我可以选择让用户在页面之间移动和泡沫?
答案 0 :(得分:14)
如果您有一个控制器处理所有页面,您可以使用@SessionAttributes
在会话中的请求之间存储Contact
。在最后一页之后使用SessionStatus
来标记@SessionAttribtues
完成的使用(用于清理)。
@Controller
@SessionAttributes("contact")
public AddContactController {
@ModelAttribute
public Contact contact() {
return new Contact();
}
@RequestMapping("/addContact")
public String registerContact(@ModelAttribute Contact contact) {
return "addContact";
}
@RequestMapping("/addImages")
public String registerImages(@Valid @ModelAttribute Contact contact, BindingResult result) {
return "addImages";
}
@RequestMapping("/save")
public String firstPage(@ModelAttribute Contact contact, SessionStatus status) {
status.complete();
}
}
答案 1 :(得分:1)
这可以通过使用具有一个限制check this的@SessionAttributes来完成。 这完全取决于你的设计。
或者你可以使用下面提到的pesudocode.Check Session API here
Use HttpServletRequest in your RequestMapping to get request.
HttpSession session = request.getSession();//make an
session.setAttribute("user", userDTO);
try
{
HttpSession session=request.getSession(false);
if(session!=null)
{
UserDTO userDTO = (UserDTO) session.getAttribute("user");
}
其中userDTO是您的对象
如何以形式回归
现在为了在你的Flow中来回移动。你必须创建前向和后向链接并使用会话来填充已经保存的值。
如果您需要更具体的代码,请与我们联系。