struts-config.xml中路径类型有什么区别?

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

我是新的 Java Struts 框架。但我想问一个问题。

struts-config.xml
中,路径是
.do
,如
"/AddReq.do"
或者路径只是名称,如
"AddReq"

"/AddReq.do"
"AddReq"
有什么区别?

例如:

<action path="/AddReqPage"
type="...actions.AddReqPageAction">
        <forward name="success" path="AddReq" /> 
        <forward name="failure" path="/bos.jsp" />
</action>
<action path="/AddReq"
type="...actions.AddReqAction"
name="AddReqForm" validate="true"
scope="request">
        <forward name="success" path="/AddReqDetail.do" />
        <forward name="hata" path="AddReq" />
        <forward name="failure" path="/bos.jsp" />
</action>
java struts struts-1 struts-config struts-action
2个回答
4
投票

差别不大。两者都应该可以工作 - 只要您在 web.xml 中正确映射到 struts ActionServlet。

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

传统上,struts 使用 *.do 模式来将其 servlet 与其他 servlet 和 JSP 区分开来


1
投票

“.do”是动作扩展。您可以在 servlet 映射中配置它。当 struts 解析 url 时,它会寻找这样的扩展来区分静态调用和 struts 操作。然后找到与该 URL 相对应但不包含“.do”的映射。但是,如果您的应用程序配置为使用该扩展名,您仍然需要在转发中指定“.do”。如今,这个扩展的意义已经不如以前了。 URL 重写 技术可以完全忽略该扩展名。 与

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

以及上面的参考资料,您可以完全忽略它。

© www.soinside.com 2019 - 2024. All rights reserved.