【问题标题】:what is the differance path type in java struts.xml?java struts.xml中的差异路径类型是什么?
【发布时间】:2013-02-21 18:25:30
【问题描述】:

我是新的 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>

【问题讨论】:

    标签: java struts struts-config struts-action


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      和上面的参考你可以完全忽略它。

      【讨论】:

        猜你喜欢
        • 2021-04-27
        • 2014-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多