我有一个Spring Annonted Controller,用于从表单中捕获信息,并从数据库中获取搜索结果列表。
下面是该方法的定义
@RequestMapping(method = RequestMethod.POST, params = {SUBMIT_BTN })
public ModelAndView processForm(@ModelAttribute(COMMAND_NAME){
// 1. Load search results using search parameters from form (Contained in a collection of some sort)
// 2. Create the ModelAndView
// 3. Redirect with RequestView or redirect: to generate a GET.
}我认为我需要使用redirect进行重定向:因为我在会话中有一个集合存储中的项目列表。无法将其添加为url请求参数。
基本上,我是在试图防止后退按钮出现问题,因为后退按钮会显示页面已过期。我想在字符串中实现PRG模式。
我很难把POST转换成GET。我可以只重定向吗?还是需要两个方法?感谢您能提供的任何帮助。
发布于 2010-07-16 23:15:17
标准模式是有一个控制器方法来处理GET,它向用户显示表单(或其他任何东西),还有一个控制器方法来处理POST,即表单提交。POST方法在处理完提交后发送一个重定向,该重定向返回到GET方法。
@RequestMapping(value="/myapp", method=GET)
public String showForm(@ModelAttribute(COMMAND_NAME){
return "form.jsp";
}
@RequestMapping(value="/myapp", method=POST)
public String processForm(@ModelAttribute(COMMAND_NAME){
// do stuff to process for submission
return "redirect:/myapp";
}返回带有"redirect:“前缀的视图名称会强制Spring直接发送HTTP,而不是转发内部请求。
这与Spring2.0使用SimpleFormController实现的模式相同,但新方式要透明得多。
https://stackoverflow.com/questions/3266227
复制相似问题