日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

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

WebWork學習***步: 一個servlet :webwork.dispatcher.ServletDispatcher  

1.簡介

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

打開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. 查找相應action類,產(chǎn)生實例.

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

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

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

WebWork學習第二步:動手寫一個簡單例子

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下)

在原有基礎上增加下面一個action

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

3.相關jsp文件

 建立以下四個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

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

4.運行

  (1)啟動Tomcat

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

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

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

5.流程說明

(1) 啟動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實例

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

(7) 校驗通過, 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) 校驗未通過,產(chǎn)生錯誤信息. 其它方法中檢測到有錯誤信息,默認返回"input"

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

(9) servlet中forward到helloinput.jsp

(10)完成.

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

ServletDispatcher->GenericDispatcher->

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

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

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

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

WebWork學習第三步: webwork自帶例子Bank app的簡單介紹

1.環(huán)境

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

相關class:webapps\webwork\WEB-INF\lib\webwork-examples.jar中的webwork.examples.bank.Transfe

相關jsp:  webapps\webwork\examples\bank\index.jsp,transfer.jsp,confirm.jsp

相關配置: 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.  

相當與

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

WebWork學習第四步:自動提交.

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

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

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

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

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

【編輯推薦】

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

    網(wǎng)站題目:WebWork學習筆記
    本文來源:http://www.dlmjj.cn/article/cdijhce.html