?
struts-config 里配置的一點個人心得
在jsp里一般都是表單 提交 ,或是 超級連接 都是 用***.do來跳轉
最開始去的是 actionselvlet
在這里面配置一些信息把? 估計 HttpServletRequest,HttpServletResponse是在這時候產生了對象
然后馬上產生actionMapping的實例(所有跳轉,表單的發送 都會去這個類里的 記住,這是個流程)
然后會調用RequestProcessor類 里面的processPreprocess方法(好象就是起轉發request,response的作用)?
通常我們也可以重也這個類 然后重寫processPreprocess() 方法具體如下
自己重寫的話 必須在</struts-config> 里加
?<controller processorClass="包名.繼承RequestProcessor的類名">
?</controller>
作用是在把數據提交到action前 先可以對一些數據進行驗證下,可以說 這個類可以當整體功能的
而action是 對某個模塊的
如返回false? 將不在進行以下操作了。
?
如果返回true;
就會在 <action-mappings>里找 與 ***.do? 前面***對應的名稱相同的 path值
<form-bean>里 type是formbean的絕對地址,name可以看成這個地址的簡化, 當做一個映射。
<action-mappings>里 type是 action的絕對地址? ,path是這個地址 的簡化,可以看成在文件里的一個映射。
?
?{
??·如果我們這時候想把 提交的表單和formbean關聯起來?
??就要把<form-bean>里name放在 <action>里, 在aciton里也叫 name? 這時候 formbean 就和 action 產生了關系了???
??接著formbean的對象產生 提交的表單里的數據? 如果property屬性對應的值在forbean里屬性有
??對應的就會 立刻調用里面的set方法
??最后 把的 4個action需要參數對象 傳到action里
??· 如果我們想通過參數 來執行不同的方法 可以這么做:
??在<form-bean>里的<action >加?? parameter="參數名"? 這時候跳轉到的action我們可以讓他 繼承自
???org.apache.struts.actions.DispatchAction;?? DispatchAction類
??我們不用在寫execute方法了
??我們寫的方法名字? 和參數的名對應的值一樣就可以了,后面方法的參數和execute方法的一致
??方法的用法也和execute一致,如此方法可以寫多個
??這樣的好處是 我們在繼承自DispatchAction的action里不需要做更多的判斷 只看是哪個頁面過來的
??就調用與這個頁面傳遞參數相同的方法。
??
??
?}
?{
??如果我們不想和formbean關聯起來 ,可以用如下方式:
??1跳轉到 jsp頁面
??<action forward="/要去的地址" path="/就是填***.do的***" />
??解釋:path和 表單和跳轉的***關聯,forward就是要去的地方?
??2跳轉到 action
??<action? path="/就是填***.do的***" type="包名.***Action">?
??
??3跳轉?
??<action parameter="/AddBook.jsp" path="/addbook1" type="org.apache.struts.actions.ForwardAction" />
??分析:path 在是jsp頁面 發過來的 ***.do里面的? AddBook.jsp可以看成參數 但是理解上是ForwardAction
??利用這個參數 決定 跳轉到哪個頁面
??
??這3個跳轉 包括表單的提交? 都是會先經過RequestProcessor()的,手寫繼承RequestProcessor()的也是一樣的
?}