日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
WebWork學(xué)習(xí)筆記

WebWork學(xué)習(xí)***步: 一個(gè)servlet :webwork.dispatcher.ServletDispatcher  

1.簡介

webwork1.4所有自帶例子中的action都提交到此servlet進(jìn)行處理,重要性當(dāng)然不言而喻.

打開webwork\WEB-INF下web.xml,可以看到以下配置

 
 
 
  1. ...  
  2.  
  3. action  
  4. webwork.dispatcher.ServletDispatcher  
  5.  
  6. 1  
  7.  
  8. ...  
  9.  
  10. action  
  11. *.action  
  12.  
  13. ...  

2 功能: 1. 處理action請求

2. 查找相應(yīng)action類,產(chǎn)生實(shí)例.

3. 執(zhí)行doValidation()校驗(yàn)輸入?yún)?shù);

4. 如果3校驗(yàn)結(jié)果為合法, 執(zhí)行doExecute();

5. 根據(jù)執(zhí)行結(jié)果字符串("success","input","error")查找views配置轉(zhuǎn)到相應(yīng)view.

WebWork學(xué)習(xí)第二步:動(dòng)手寫一個(gè)簡單例子

1. HelloAction.java 源代碼

 
 
 
  1. import webwork.action.ActionSupport;  
  2. import webwork.action.Action;  
  3. public class HelloAction  
  4. extends ActionSupport {  
  5. private String name ;  
  6. public HelloAction() {  
  7. }  
  8. public void setName(String name) {  
  9. this.name = name;  
  10. }  
  11. public String getName() {  
  12. return this.name;  
  13. }  
  14. public void doValidation() {  
  15. else if(name==null||name.length()<1){  
  16. addError("Name","can't be null or empty!");  
  17. }  
  18. }  
  19. //如果不做其它處理,也可以不override此方法.  
  20. 缺省返回success  
  21. public String doExecute() {  
  22. return SUCCESS;  
  23. }  

編譯完的class文件拷入webwork\WEB-INF\classes下.

2.配置

有兩種配置方法可選:

(1) 配置views.properties(在webwork\WEB-INF\classes下)

hello.action=HelloAction

hello.input=helloinput.jsp

hello.success=hellosuccess.jsp

hello.error=helloerror.jsp

(2) 配置actions.xml(在webwork\WEB-INF\classes下)

在原有基礎(chǔ)上增加下面一個(gè)action

 
 
 
  1.  
  2. hellosuccess.jsp view>  
  3. helloerror.jsp view>  
  4. helloinput.jsp view>  
  5. action> 

3.相關(guān)jsp文件

 建立以下四個(gè)jsp文件,存放目錄為:webwork下.

(1)index.jsp

 
 
 
  1.  
  2.     
  3.     test webwork  
  4.     
  5.     
  6.     example  
  7.     
  8.  

(2)hellosuccess.jsp

 
 
 
  1.  
  2.     
  3.     test webwork  
  4.     
  5.     
  6.     
  7.       
  8.       
  9.     
  10.     
  11.  

(3)hellosuccess.jsp

 
 
 
  1.  
  2.  
  3. Test  
  4.  
  5.  
  6. Hello world!  
  7.  
  8.  

(4)helloerror.jsp

同上,將字符串改掉即可.本例子中只是配置中用到,運(yùn)行過程未用此頁面.

4.運(yùn)行

  (1)啟動(dòng)Tomcat

  (2)IE中輸入:http://localhost:8080/webwork/index.jsp

  (3)不輸入任何字符,提交,頁面仍然在helloinput.jsp

     輸入字符后提交,頁面轉(zhuǎn)至hellosuccess.jsp

5.流程說明

(1) 啟動(dòng)Tomcat后, 初始化servlet(ServletDispatcher)

(2) 在輸入頁面(helloinput.jsp), 輸入字符提交(提交到hello.action)

(3) 根據(jù)web.xml中配置,此請求由ServletDispather處理.

(4) servlet根據(jù)actionName("hello")查找配置(配置內(nèi)容:hello.action=HelloAction)

(5) 產(chǎn)生HelloAction實(shí)例

(6) servlet調(diào)用HelloAction的doValidation()校驗(yàn)輸入?yún)?shù).

(7) 校驗(yàn)通過, servlet調(diào)用HelloAction的doExecute(),返回成功("success").

(8) 根據(jù)views配置查找到:

hello.success=hellosuccess.jsp (actionaliasName.viewName=pagename)

(9) servlet中forward到hellosuccess.jsp

(10)輸出hello world!, 完成.

如果不輸入直接提交,以下幾步略有不同

(7) 校驗(yàn)未通過,產(chǎn)生錯(cuò)誤信息. 其它方法中檢測到有錯(cuò)誤信息,默認(rèn)返回"input"

(8) 根據(jù)views配置查找到:hello.input=helloinput.jsp

(9) servlet中forward到helloinput.jsp

(10)完成.

6.補(bǔ)充HelloAction的調(diào)用步驟其實(shí)是:

ServletDispatcher->GenericDispatcher->

調(diào)用executeaction()->ActionSupport的execute()->

調(diào)用HelloAction的相應(yīng)方法.

5中的說明只是為了簡單而這樣描述的.

如果你對這些有興趣,可以看看ServletDispatcher,GenericDispatcher,ActionSupport,Action等源碼.

WebWork學(xué)習(xí)第三步: webwork自帶例子Bank app的簡單介紹

1.環(huán)境

http://localhost:8080/webwork 中JSP下面的Bank app

相關(guān)class:webapps\webwork\WEB-INF\lib\webwork-examples.jar中的webwork.examples.bank.Transfe

相關(guān)jsp:  webapps\webwork\examples\bank\index.jsp,transfer.jsp,confirm.jsp

相關(guān)配置: webapps\webwork\-WEB-INF\classes\views.properties

# Bank example (Struts example adaptation)

bank.transfer.action=bank.Transfer (即webwork.examples.bank.Transfer)

bank.transfer.input=transfer.jsp

bank.transfer.success=confirm.jsp

bank.transfer.error=transfer.jsp

由于webwork.properties配有

webwork.action.packages=webwork.examples, webwork.examples.vxml

因此上面配置bank.transfer.action=bank.Transfer省略了webwork.examples.

2.index.jsp

 
 
 
  1.  

相當(dāng)與

 
 
 
  1. action" method="post">  
  2.  
  3.  

WebWork學(xué)習(xí)第四步:自動(dòng)提交.

(1)提交到servlet, servlet處理bank.transfer!default.action(構(gòu)成:actionAliasName+!commandName+.action)

由于action中有command(command為:default), 通過reflect查找doCommand即(doDefault),

執(zhí)行doDefault()返回"input"

(2)input對應(yīng)的view為transfer.jsp,轉(zhuǎn)到此頁面.

(3)輸入?yún)?shù)后提交,執(zhí)行bank.transfer.action, 其它流程與上面第二部分第5結(jié)類似.

【編輯推薦】

  1. WebWork框架原理與應(yīng)用(1)
  2. 用WebWork注冊頁面建立過程
  3. WebWork注入Servlet方法詳解
  4. WebWork中返回INPUT的原因
  5. WebWork如何實(shí)現(xiàn)文件上傳配置過程

    本文名稱:WebWork學(xué)習(xí)筆記
    分享鏈接:http://m.5511xx.com/article/cdijhce.html