我有这个控制器的方法:
@RequestMapping(value="/path", method = RequestMethod.GET )
public String path(Model model, RedirectAttributes redirectAttributes) {
redirectAttributes.addFlashAttribute("attr", "valueFromPath");
return "redirect:jspPage.jsp";//this page located in webApp folder
}
jspPage.jsp:
...
<h1>${attr}</h1>
...
在我的情况下,该行为空,但我希望
valueFromPath
将显示在此jsp上。我该怎么做?
web.xml:
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
...
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
最佳答案
我将在这里做一个假设。由于您的网址映射
<url-pattern>/*</url-pattern>
DispatcherServlet
未处理对jspPage.jsp
的请求。该作业属于default Servlet
。这样,DispatcherServlet
无法执行将HttpSession
属性中的flash属性添加回请求属性中的逻辑。您需要确保对
jspPage.jsp
的请求由DispatcherServlet
处理。通过将文件移动到其他位置或将url-pattern
更改为/
并提供处理程序。