在struts2中,其***結構的設計,是乙個典型的責任鏈模式的應用。首先將整個執行劃分成若干相同型別的元素,每個元素具備不同的邏輯責任,並將他們納入到乙個鏈式的資料結構中(我們可以把堆疊結構也看作是乙個遞迴的鏈式結構),而每個元素又有責任負責鏈式結構中下乙個元素的執行呼叫。
這樣的設計,從**重構的角度來看,實際上是將乙個複雜的系統,分而治之,從而使得每個部分的邏輯能夠高度重用並具備高度可擴充套件性。所以,interceptor結構實在是struts2/xwork設計中的精華之筆。
struts2***執行機理如下:
1. 整個結構就如同乙個堆疊,除了action以外,堆疊中的其他元素是interceptor
2. action位於堆疊的底部。由於堆疊"先進後出"的特性,如果我們試圖把action拿出來執行,我們必須首先把位於action上端的interceptor拿出來執行。這樣,整個執行就形成了乙個遞迴呼叫
3. 每個位於堆疊中的interceptor,除了需要完成它自身的邏輯,還需要完成乙個特殊的執行職責。這個執行職責有3種選擇:
1) 中止整個執行,直接返回乙個字串作為resultcode
2) 通過遞迴呼叫負責呼叫堆疊中下乙個interceptor的執行
3) 如果在堆疊內已經不存在任何的interceptor,呼叫action
Struts2中checkboxlist標籤的使用
selectedproducts name product.id list products listvalue name listkey id value 這裡分兩類,首先明確value的值應該是乙個list,用來顯示checkbox內那些需要先打勾 一類,當value的值是是乙個list bea...
Struts2字尾 深入Struts2
一 將action字尾變成html字尾 xmlversion 1.0 encoding utf 8 doctype struts public apache software foundation dtd struts configuration 2.1 en struts include file...
struts2中的 使用
迭代資料時 例如 var var屬性的值代表當前正在遍歷的物件 var存放在map棧 status int getcount 返回當前迭代的元素個數 int getindex 返回當前迭代的元素的索引 boolean iseven 返回當前迭代元素的索引是否是偶數 boolean isodd 返回當...