java struts.xml中的路径类型有什么不同?

时间:2013-02-21 18:25:31

标签: java struts struts-config struts-action

我是新的java struts框架。但是我想问一个问题。

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

2 个答案:

答案 0 :(得分: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 :(得分:1)

“。do”是一个动作扩展。您可以在servlet映射中配置它。当struts解析url时,它正在寻找这样的扩展来区分静态调用和struts动作。然后找到与该URL对应但没有“.do”的映射。但是,如果您的应用程序配置为使用该扩展,您仍然在转发中指定“.do”。如今,这个扩展的含义和以前一样少。 URL rewrite技术完全忽略了该扩展。与

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

并在上面引用你可以完全忽略它。