我正在使用带有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>