我有这个控制器的方法:

@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更改为/并提供处理程序。

10-06 02:22