Struts1将url模式*.do与常规urls-web.xml混合使用



我在struts 1应用程序中遇到以下情况。

该应用程序的旧功能与struts 1一起工作,并具有以下servlet映射(我认为这是标准的工作方式)。

<servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
 </servlet-mapping>

我还用struts Actions在struts 1中编写了一些新功能(json-webservices)。

我希望这些url在没有.do扩展的情况下可用,但旧的url应该仍然可以使用*.do扩展。

我已经尝试过一些东西,比如/url模式,但这会中断静态资源的加载。

有人知道怎么做吗?

我用不同的方法解决了这个问题。我使用了tuckey url重写器来实现我的目标。

http://www.tuckey.org/urlrewrite/

我让重写器重定向

services/someService?parma1=值1&param2=值2到服务。someService.do?parma1=值1&param2=value2

urlrewrite.xml中的配置如下

<urlrewrite use-context="true">
    <rule>
        <from>^/services/someService$</from>
        <to last="true">/someService.do?%{QUERY_STRING}</to>
    </rule>
</urlrewrite>

其余信息可在手册中找到。

最新更新