1.package標簽下主要的點在namespace和name,extend上 extend 一般繼承自struts-default.xml下,繼承其攔截器及一些功能,這個已在本人的攔截器一文中有講到 namespace,主要用於約束訪問地址action前的路徑,比如http://www.baidu ...
1.package標簽下主要的點在namespace和name,extend上
extend 一般繼承自struts-default.xml下,繼承其攔截器及一些功能,這個已在本人的攔截器一文中有講到
namespace,主要用於約束訪問地址action前的路徑,比如http://www.baidu.com/aaa/bbb/ccc.action
如果有/aaa/bbb的namespace,有則訪問該package,
如果沒有,則查看是否有/aaa/的namespace,有則訪問該package,
如果都沒找到,則404
name,主要用於標識該package,可以用於其他繼承.
2.action,標簽下主要有name,class
name,主要用於約束,訪問路徑最後一個路徑單元,如上文的ccc.action,如有ccc為name的action,則交由改action的class處理
class所指向的類全名必須是繼承自action介面,實現execute方法的類,一般繼承ActionSupport,因為其在繼承action介面的基礎上
還擴展了更多功能,如果找不到對應的action,則執行預設actionSupport的execute,其返回success,但是可以在struts標簽下定義
action-default-ref來定義預設的action .
3.訪問路徑尾碼
我們看到訪問路徑的尾碼是.action ,其實你可以不帶,因為這是允許的,約束是在框架自帶的default.properties中,有一個struts.action.extension=action,,
我們可以自定義一個struts.proeprties,來定義這個常量並覆蓋其預設值已達到自定義的效果,這裡就涉及到載入配置文件的順序
struts-default.xml
struts-plugin.xml
struts.xml
struts.properties
web.xml
後面配置文件配置的信息會覆蓋前面配置文件的相同的信息,這也是為什麼可以通過struts.propertie來覆蓋struts.xml中配置的常量