Я пытаюсь реализовать функцию RedirectAttributes в Spring MVC 3.1-Release
Я отправляю простую форму на URL-адрес публикации и хотел бы увидеть значение, которое я отправляю в перенаправлении:
мой контроллер выглядит так:
@Controller public class DefaultController { @RequestMapping(value="/index.html", method=RequestMethod.GET) public ModelAndView indexView(){ ModelAndView mv = new ModelAndView("index"); return mv; } @RequestMapping(value="/greetings.action", method=RequestMethod.POST) public ModelAndView startTask(@RequestParam("firstName") String firstName,RedirectAttributes redirectAttributes){ redirectAttributes.addFlashAttribute("redirectAttributes.firstName", firstName); ModelAndView mv = new ModelAndView(new RedirectView("success.html")); return mv; } @RequestMapping(value="/success.html", method=RequestMethod.GET) public ModelAndView successView(){ ModelAndView mv = new ModelAndView("success"); return mv; } }
Теперь мой XML-файл сервлета выглядит так:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd"> <mvc:annotation-driven/> <context:component-scan base-package="com.vanilla.flashscope.controllers" /> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> </beans>
Моя проблема в том, что в представлении success.html redirectAttributes вида пусто.
<body> <h5>${redirectAttributes.firstName} </h5> </body>
Ничего не печатает.
Это не работает, потому что вы используете ModelAndView в качестве возвращаемого значения.
См. Выпуск JIRA: https://jira.springsource.org/browse/SPR-8968
Похоже, вам нужно удалить "redirectAttributes." от имени ключа "
Вместо:
redirectAttributes.addFlashAttribute("redirectAttributes.firstName", firstName);
Сделайте это:
redirectAttributes.addFlashAttribute("firstName", firstName);