如何从Struts1中的url中删除'.do'前缀?

时间:2014-07-30 08:42:48

标签: java java-ee struts struts-1

我在Struts 1框架中编写了一个Web应用程序。一切正常,但在表单提交时,用户转发到下一页显示的网址是actionname.do。我不希望这个Struts 1在URL上有默认后缀。而不是它我想在URL中看到页面的名称。怎么做?

注意:我已尝试在web.xml中编辑servlet映射。已替换/*.do。但在这种情况下,即使我的索引页面也无法打开。

4 个答案:

答案 0 :(得分:2)

  1. 打开/WEB-INF/web.xml
  2. 您必须找到servlet-name的{​​{1}}和org.apache.struts.action.ActionServlet对应的servlet-mapping
  3. 例如:

    servlet-name

    最后,只需将<servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> 更改为您想要的内容并重新部署该应用程序。

答案 1 :(得分:2)

修改web.xml并更改*.do

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

答案 2 :(得分:2)

在您的web.xml中,将网址格式*.do替换为/

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

答案 3 :(得分:1)

您可以使用此映射

<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>/c/*</url-pattern>
</servlet-mapping>

然后使用Tuckey URL rewriter规则将其更改为/*

<rule>
  <from>^/(\w+)*/$</from>
  <to>/c/$1</to>
</rule>