如何从 Struts 1 中的操作 URL 中删除“.do”扩展名?

问题描述 投票:0回答:4

我在 Struts 1 框架中编写了一个 Web 应用程序。一切正常,但在表单提交时,当用户转发到下一页时,显示的 URL 是

actionname.do
。我不希望 URL 上有这个 Struts 1 默认后缀。相反,我想在 URL 中看到页面的名称。怎么办?

注意:我尝试在

web.xml
中编辑 servlet 映射。已将
*.do
替换为
/
。但在这种情况下,即使我的索引页也打不开。

java url struts struts-1
4个回答
4
投票

在 web.xml 中,将 url 模式

*.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>

2
投票
  1. 打开
    /WEB-INF/web.xml
  2. 您必须找到
    servlet-name
    中的
    org.apache.struts.action.ActionServlet
    以及与
    servlet-mapping
    对应的
    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>

最后,只需将

url-pattern
更改为您想要的并重新部署应用程序即可。


2
投票

web.xml
中修改并更改
*.do

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

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>
© www.soinside.com 2019 - 2024. All rights reserved.