2016-08-04 104 views
0

我在struts 1應用程序中有以下情況。Struts 1混合url模式* .do與常規URL web.xml

該應用程序的舊功能與struts 1一起工作,並具有以下servlet映射(我認爲這是標準的做事方式)。

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

我在struts 1中用struts Actions寫了一些新的功能(json webservices)。

我希望這些網址可以不帶.do擴展名,但舊的網址仍然可以使用* .do擴展名。

我嘗試了一些像/ url模式的東西,但是這打破了靜態資源的加載。

有誰知道如何做到這一點?

回答

0

我以不同的方式解決了這個問題。我使用了曲折的網址重寫器來實現我的目標。

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

我做出了重寫重定向

服務/ someService?parma1 =值&參數2 =值2 到 severices.someService.do?parma1=value1 &參數2 =值2

的在urlrewrite.xml中爲此配置看起來像這樣

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

其餘的信息可以在手冊中找到。