如何将UrlRewritingFilter与Struts 2.X集成

时间:2012-08-30 10:04:28

标签: url-rewriting struts2 wildcard

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可以分享一个工作示例吗?

感谢。!!

1 个答案:

答案 0 :(得分:1)

这是您需要配置重写过滤器的方法

的web.xml

<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,有关详细信息,请参阅此博客以获取示例和理解