【问题标题】:how to map multiple url for one servlet如何为一个 servlet 映射多个 url
【发布时间】:2013-02-18 09:41:06
【问题描述】:

我在我的 struts Web 应用程序中用一个 servlet 映射两个 url,web.xml 中的代码部分如下。

<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 中添加 .mobile ,例如假设表单是:

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

它正在发送请求到:

http:myIp:8080/ProjectName/login.mobile

我的问题是为什么要添加 .mobile 而不是 .do??他们有什么办法解决它吗???

谢谢。

【问题讨论】:

  • 认真的吗?你最好检查一下你的jsp文件。
  • no action.do 不存在。在.do,*.do 的地方就在那里。
  • 没错。你必须检查你的 HTML 然后
  • 当我将 servlet 映射更改为 action*.domapping> ,相同的jsps工作正常。
  • 好!发布与答案相同的内容。

标签: java struts web.xml struts-config


【解决方案1】:

也许删除扩展名 (.do/.mobile) 将有助于使用

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-29
    • 2012-12-21
    • 2012-01-20
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 2011-07-09
    相关资源
    最近更新 更多