0

1)有没有办法将 UrlRewritingFilter 与 Struts2瓦片集成。我认为 web xml 中的侦听器存在问题。

<listener>
    <listener-class>listener.ApplicationListener</listener-class>
</listener>

<listener>
    <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>

2)如何使用struts2高级通配符映射来编写更好的带有actions的url。任何人都可以分享一个工作示例吗?

谢谢。!!

4

1 回答 1

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>

有关详细信息,请参阅那里的文档。还有一个选项可以使用创建干净的 URL NamedVariablePatternMatcher,有关详细信息,请参阅此博客示例和理解

于 2012-08-30T11:33:06.133 回答