我正在使用带有 struts 2.3.14 的 sitemesh 2.4。Sitemesh 正确地装饰了网页,除了一种情况:当表单验证失败并且 struts 2 呈现带有错误消息的原始输入 jsp 页面时。在网上研究之后,我认为问题在于struts 2只是渲染了原始的输入jsp页面,而没有调用另一个动作来发出http请求(例如,重定向)。因此sitemesh没有办法干预来装饰呈现的jsp页面。
所以这是我的问题:是否可以指示 struts 2 呈现输入 jsp 页面并触发 Http 请求,以便它可以被 sitemesh 拦截?
先感谢您,
我的 web.xml 中的相关配置:
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>