首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring MVC(Spring 2.5)关于Post-Redirect-Get的问题

Spring MVC(Spring 2.5)关于Post-Redirect-Get的问题
EN

Stack Overflow用户
提问于 2010-07-16 23:07:28
回答 1查看 3.7K关注 0票数 3

我有一个Spring Annonted Controller,用于从表单中捕获信息,并从数据库中获取搜索结果列表。

下面是该方法的定义

代码语言:javascript
复制
@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。我可以只重定向吗?还是需要两个方法?感谢您能提供的任何帮助。

EN

回答 1

Stack Overflow用户

发布于 2010-07-16 23:15:17

标准模式是有一个控制器方法来处理GET,它向用户显示表单(或其他任何东西),还有一个控制器方法来处理POST,即表单提交。POST方法在处理完提交后发送一个重定向,该重定向返回到GET方法。

代码语言:javascript
复制
@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实现的模式相同,但新方式要透明得多。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3266227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档