我是新的 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>
差别不大。两者都应该可以工作 - 只要您在 web.xml 中正确映射到 struts ActionServlet。
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
传统上,struts 使用 *.do 模式来将其 servlet 与其他 servlet 和 JSP 区分开来
“.do”是动作扩展。您可以在 servlet 映射中配置它。当 struts 解析 url 时,它会寻找这样的扩展来区分静态调用和 struts 操作。然后找到与该 URL 相对应但不包含“.do”的映射。但是,如果您的应用程序配置为使用该扩展名,您仍然需要在转发中指定“.do”。如今,这个扩展的意义已经不如以前了。 URL 重写 技术可以完全忽略该扩展名。 与
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>/c/*</url-pattern>
</servlet-mapping>
以及上面的参考资料,您可以完全忽略它。