我在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¶m2=值2到服务。someService.do?parma1=值1¶m2=value2
urlrewrite.xml中的配置如下
<urlrewrite use-context="true">
<rule>
<from>^/services/someService$</from>
<to last="true">/someService.do?%{QUERY_STRING}</to>
</rule>
</urlrewrite>
其余信息可在手册中找到。