1)有没有办法将UrlRewritingFilter与Struts2 tile 集成。我认为存在问题 web xml中的监听器。
<listener>
<listener-class>listener.ApplicationListener</listener-class>
</listener>
<listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
2)如何使用struts2高级通配符映射来编写更好的url with actions.anybody可以分享一个工作示例吗?
感谢。!!
答案 0 :(得分:1)
这是您需要配置重写过滤器的方法
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</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>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
请注意对S2过滤器所做的更改
在rewrite.xml
下添加WEB-INF
文件,其中的条目为
<urlrewrite>
<rule>
<from>^/some/olddir/(.*)$</from>
<to type="redirect">/very/newdir/$1</to>
</rule>
</urlrewrite>
有关详细信息,请参阅documents。
还有一个选项可以使用NamedVariablePatternMatcher
创建干净的URL,有关详细信息,请参阅此博客以获取示例和理解