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类,产生实例.

3. 执行doValidation()校验输入参数;

4. 如果3校验结果为合法, 执行doExecute();

5. 根据执行结果字符串("success","input","error")查找views配置转到相应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

     输入字符后提交,页面转至hellosuccess.jsp

5.流程说明

(1) 启动Tomcat后, 初始化servlet(ServletDispatcher)

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

(3) 根据web.xml中配置,此请求由ServletDispather处理.

(4) servlet根据actionName("hello")查找配置(配置内容:hello.action=HelloAction)

(5) 产生HelloAction实例

(6) servlet调用HelloAction的doValidation()校验输入参数.

(7) 校验通过, servlet调用HelloAction的doExecute(),返回成功("success").

(8) 根据views配置查找到:

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

(9) servlet中forward到hellosuccess.jsp

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

如果不输入直接提交,以下几步略有不同

(7) 校验未通过,产生错误信息. 其它方法中检测到有错误信息,默认返回"input"

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

(9) servlet中forward到helloinput.jsp

(10)完成.

6.补充HelloAction的调用步骤其实是:

ServletDispatcher->GenericDispatcher->

调用executeaction()->ActionSupport的execute()->

调用HelloAction的相应方法.

5中的说明只是为了简单而这样描述的.

如果你对这些有兴趣,可以看看ServletDispatcher,GenericDispatcher,ActionSupport,Action等源码.

WebWork学习第三步: webwork自带例子Bank app的简单介绍

1.环境

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(构成:actionAliasName+!commandName+.action)

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

执行doDefault()返回"input"

(2)input对应的view为transfer.jsp,转到此页面.

(3)输入参数后提交,执行bank.transfer.action, 其它流程与上面第二部分第5结类似.

【编辑推荐】

  1. WebWork框架原理与应用(1)
  2. 用WebWork注册页面建立过程
  3. WebWork注入Servlet方法详解
  4. WebWork中返回INPUT的原因
  5. WebWork如何实现文件上传配置过程

    当前题目:WebWork学习笔记
    网页网址:http://www.shufengxianlan.com/qtweb/news37/387137.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联