http://www.open-open.com/lib/view/open1397266120028.html
虽然这一方法看起来很完美,并且解决了表单多次提交的问题,但是它又引入了一个获取请求参数和属性的难题. 通常当我们生成一次http重定向请求的时候,被存储到请求数据会丢失,使得下一次GET请求不可能访问到这次请求中的一些有用的信息.
Flash attributes 的到来就是为了处理这一情况. Flash attributes 为一个请求存储意图为另外一个请求所使用的属性提供了一条途径. Flash attributes 在对请求的重定向生效之前被临时存储(通常是在session)中,并且在重定向之后被立即移除.
为了这样做, Flash 特性使用了两个集合. FlashMap 被用来管理 flash attributes 而 FlashMapManager 则被用来存储,获取和管理 FlashMap 实体.
对于每一次请求一个 “input” flash map 会被创建,来存储来自任何之前请求的 flash attribute 还有一个 “output” flash map 会被创建,来存储任何我们存储在这个请求中的,之后的请求参数.
使用
@RequestMapping(value="addcustomer", method=RequestMethod.POST)
public String addCustomer(@ModelAttribute("customer") Customer customer,
final RedirectAttributes redirectAttributes) {
redirectAttributes.addFlashAttribute("customer", customer);
redirectAttributes.addFlashAttribute("message","Added successfully.");
return "redirect:showcustomer.html";
}
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<body>
<h1>${message}</h1>
${customer.lastname}, ${customer.firstname} added successfully..
</body>
</html>
分享到:
相关推荐
#### 一、Spring MVC 核心组件与工作流程 **Spring MVC** 是 **Spring Framework** 的一个重要模块,主要用于构建基于 Web 的应用程序。它提供了简化 Web 开发的一系列功能,包括但不限于请求处理、视图渲染等。在 ...
**Spring MVC 3 与 Tiles 框架整合** 在Web开发中,Spring MVC和Tiles是两个非常重要的组件。Spring MVC作为一个强大的MVC框架,负责处理应用的业务逻辑和视图展示,而Tiles则是一个视图层框架,主要用于页面布局和...
本文档详细介绍了如何使用Spring Framework MVC框架逐步构建一个完整的Web应用程序。文档版本为2.5,由Thomas Risberg、Rick Evans和Portia Tung共同编著,版权归属2004-2008年。 #### 基本应用及环境搭建 ##### ...
在本文中,我们将深入探讨如何将Spring MVC与Tiles框架整合,以便更好地管理和组织Web应用程序的视图。Tiles框架提供了一种高效的方式,通过组合多个可重用的组件(tiles)来构建复杂的页面布局,增强了MVC模式在...
5.1.3使用Spring MVC的AbstractSecurityWebApplicationInitializer 32 5.2 HttpSecurity 32 5.3 Java配置和表单登录 34 5.4授权请求 35 5.5处理注销 36 5.5.1 LogoutHandler 37 5.5.2 LogoutSuccessHandler 37 5.5.3...
在Spring MVC中整合Apache Tiles,可以将页面设计与业务逻辑分离,提高代码的可维护性和复用性。 在Spring MVC中,视图解析器扮演着重要的角色,它负责将处理完的模型数据转换成具体的视图展现给用户。`...
- 如果需要将数据保存在用户的会话中,可以使用`@SessionAttribute`。 - 示例: ```java @RequestMapping(value = "/example") public String example(HttpSession session) { session.setAttribute("msg", ...
其次,`RequestAttribute`是Spring MVC提供的一种机制,用于在请求之间存储和检索数据。这通常发生在处理多个相关请求时,如登录和注册流程。例如,当用户尝试登录时,我们可以将验证后的用户对象存储为一个请求属性...
将Spring与Struts整合可以充分利用两者的优点,实现松耦合和高效的业务逻辑处理。 在整合Spring和Struts的过程中,主要涉及以下几个关键点: 1. **配置Struts Action**: 在`struts-config.xml`中,我们需要定义...
这里我们将使用Spring MVC框架来构建我们的示例。 首先,我们需要了解分页的基本逻辑。通常,分页涉及计算总页数,这基于每页展示的记录数(即页面大小)和总记录数。在本例中,我们看到一个名为`Pager`的自定义...
传统的做法是直接使用Servlet API,如`HttpSession`对象,但这会使得Controller与Servlet API耦合度过高。为了降低这种依赖,我们可以采用自定义注解和ArgumentResolver的方式实现更加灵活的Session数据访问。 首先...
业务处理器调用模型层处理完用户请求后,把结果数据存储在ModelAndView的model属性中,把要返回的视图信息存储在ModelAndView的view属性中,然后让该ModelAndView返回该Spring MVC框架。框架通过调用配置文件中定义...
Spring MVC 支持多种高级特性,包括 Model-Attribute、Form 表单绑定、数据验证、拦截器、异常处理、RESTful 风格的 URL 等。随着你对框架的深入学习,可以逐步利用这些功能优化应用。 10. **SpringMVCDemo-master...
在这个例子中,当`MyCustomException`被抛出时,Spring MVC会调用`handleMyCustomException`方法,我们可以在这里处理异常并返回一个`ModelAndView`对象,用于指定视图和模型数据。 总结起来,Spring MVC提供了多种...
标题中的“SpringBoot ...但是,根据上述信息,我们可以推测这是一个关于Spring Boot中Model使用和原理的教程或者技术分享,内容可能涉及实践示例、源码解读以及最佳实践。如果想要了解更多,可以访问提供的博客链接。
这个示例项目对于理解和实践Spring MVC的国际化功能非常有帮助,无论是新手还是有经验的开发者,都能从中受益。通过学习和实践,你可以更好地理解如何在实际项目中提供多语言支持,提升用户体验。
在Spring MVC框架中,`@PathVariable` 是一个用于从URL模板中提取占位符值的注解,这对于处理动态路由非常有用。以下是关于在Spring MVC中获取`PathVariable`的值的详细方法: ### 一、URL模板与`@PathVariable` ...
2. **Spring自动注入**:Spring MVC框架支持自动将请求参数映射到控制器方法的参数上,只要参数名与表单字段的name属性相匹配。例如: ```java @RequestMapping("/login.do") public String login...
在Spring MVC框架中,RedirectAttributes是一个关键工具,它允许我们在处理完一个请求后进行重定向,并且能够携带参数。这个特性在3.1版本之后被引入,目的是为了更安全、更优雅地处理重定向时的数据传递。本文将...