2013-03-04 53 views
3

我在struts web應用程序中使用一個servlet映射兩個url,web.xml中的代碼部分如下所示。如何爲一個servlet映射多個url

<servlet> 
    <servlet-name>action</servlet-name> 
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> 
    <init-param> 
     <param-name>config</param-name> 
     <param-value>/WEB-INF/struts-config.xml</param-value> 
    </init-param> 
    <init-param> 
     <param-name>debug</param-name> 
     <param-value>3</param-value> 
    </init-param> 
    <init-param> 
     <param-name>detail</param-name> 
     <param-value>3</param-value> 
    </init-param> 
    <load-on-startup>0</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>action</servlet-name> 
    <url-pattern>*.do</url-pattern> 
    <url-pattern>*.mobile</url-pattern> 
    </servlet-mapping> 

問題是每當我提交任何形式的,它被添加在。移動前url.for假設形式爲:

<html:form action="login.do"> 
<html:text property="name" /> 
<html:submit >go</html:submit>      
</html:form> 

它發送請求:

HTTP :myIp:8080/ProjectName/login.mobile

我的問題是爲什麼它添加.mobile而不是.do ??是他們的任何方式來解決它?

謝謝。

+0

真的嗎?你最好剪切你的jsp文件。 – neohope 2013-03-04 10:24:01

+0

沒有操作 .do不在.do中,.do,* .do在那裏。 – sharad7188 2013-03-04 10:35:00

+0

這就是對的。當我將servlet映射到 action * .do 時,您必須檢查您的HTML,然後 – codeMan 2013-03-04 10:46:55

回答

0

也許去除擴展名(。做/。移動)將幫助使用

<constant name="struts.action.extension" value=","/>