Struts 1 混合 url 模式 *.do with regular urls web.xml
Struts 1 mix url pattern *.do with regular urls web.xml
我在 struts 1 个应用程序中遇到以下情况。
应用程序的旧功能适用于 struts1 并具有以下 servlet 映射(我认为这是标准的处理方式)。
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
我也在 struts 1 中使用 struts 操作编写了一些新功能(json 网络服务)。
我希望这些 url 可以在没有 .do 扩展名的情况下使用,但是旧的 url 应该仍然可以使用 *.do 扩展名。
我已经尝试了几种方法,例如 / url 模式,但这会中断静态资源的加载。
有人知道怎么做吗?
我用不同的方法解决了这个问题。我使用 tuckey url 重写器来实现我的目标。
http://www.tuckey.org/urlrewrite/
我使重写器重定向
services/someService?parma1=value1¶m2=value2
到
severices.someService.do?parma1=value1¶m2=value2
urlrewrite.xml 中的配置如下所示
<urlrewrite use-context="true">
<rule>
<from>^/services/someService$</from>
<to last="true">/someService.do?%{QUERY_STRING}</to>
</rule>
</urlrewrite>
其余的信息可以在手册中找到。
我在 struts 1 个应用程序中遇到以下情况。
应用程序的旧功能适用于 struts1 并具有以下 servlet 映射(我认为这是标准的处理方式)。
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
我也在 struts 1 中使用 struts 操作编写了一些新功能(json 网络服务)。
我希望这些 url 可以在没有 .do 扩展名的情况下使用,但是旧的 url 应该仍然可以使用 *.do 扩展名。
我已经尝试了几种方法,例如 / url 模式,但这会中断静态资源的加载。
有人知道怎么做吗?
我用不同的方法解决了这个问题。我使用 tuckey url 重写器来实现我的目标。
http://www.tuckey.org/urlrewrite/
我使重写器重定向
services/someService?parma1=value1¶m2=value2 到 severices.someService.do?parma1=value1¶m2=value2
urlrewrite.xml 中的配置如下所示
<urlrewrite use-context="true">
<rule>
<from>^/services/someService$</from>
<to last="true">/someService.do?%{QUERY_STRING}</to>
</rule>
</urlrewrite>
其余的信息可以在手册中找到。