剛開始學習ssh框架中struts2時,個人疑惑以及一些問題總結一下。
1、package節點namespace屬性值決定訪問路徑問題
namespace不寫或寫namespace=""代表含義都一樣
namespace="/"表示根命名空間,只能處理「專案名/actionname.action」的url請求。
假設有個name="index"的action 即名為index.action,專案名為p1。namespace值及訪問路徑如下:
namespace值
訪問路徑
空或""
p1/index.action或p1/x/index.action等
/p1/index.action(只能這一種)
/xp1/x/index.action
/x/y
p1/x/y/index.action
如下struts.xml配置
/namespace.jsp
/namespace.jsp
namespace是什麼?想訪問的action前面就應該加上什麼,比如這裡就是/front/index.action
namespace等於空,意味著:只要在url敲index.action不管在**敲,路徑多麼深,只要最後是「index.action」就可以訪問這個action。
所以namespace意味著:只要找到乙個index.action,沒有找到精確的對應的namespace,全部都交給namespace為空的這個package去處理,所以這個package囊括了其他所有package處理不了的action。
資料參考:
這個**對於namespace=""和namespace="/"的描述有錯誤。
2、action下result節點name屬性值命名方式問題
個人理解:系統根據action節點中的method屬性值對應的方法中的返回結果,在result中查詢相應結果的對映,轉向指定介面。所以result中name值只要和method屬性值對應的方法中的返回值相同即可。
3、src下的類什麼時候載入
使用者提交表單時 會有乙個action屬性,根據action值,在struts.xml中查詢相應name的action配置,根據配置找到相應的類,執行method屬性對應的方法,根據方法返回值,在result中查詢相應結果的對映,轉向指定介面。
4、struts.xml配置及action配置
action配置中,配置項的預設值:
1) 如果沒有指定action的class,預設值為actionsupport。
2) 如果沒有指定action的method屬性,預設值為execute()方法。
3) 如果沒有指定result的name屬性,預設值為」success」
資料參考:
struts2學習筆記 struts2的配置檔案
一 struts.xml定義bean的作用 1.建立該bean的例項,將該例項作為struts2框架的核心元件使用。2.bean包含的靜態方法需要乙個值注入。很方便地允許不建立某個類的例項,卻可以接受框架常量。通常需要設定static true 通常,當指定了type屬性時,該屬性不應該制定為tru...
struts2學習筆記 struts2的配置檔案
一 struts.xml定義bean的作用 1.建立該bean的例項,將該例項作為struts2框架的核心元件使用。2.bean包含的靜態方法需要乙個值注入。很方便地允許不建立某個類的例項,卻可以接受框架常量。通常需要設定static true 通常,當指定了type屬性時,該屬性不應該制定為tru...
struts2 學習筆記2
這裡我碰到了乙個問題,如果我們簡單的將所有的jsp放在 web inf xx.jsp下,那沒有任何問題,在jsp中我們定義form如下所表示 配置檔案會解析匹配找到相應的action,並跳轉到我在配置檔案中設定的jsp,form中action屬性中的mystruts不能刪除,後面的namespace...