收藏 分销(赏)

webwork培训.ppt

上传人:可**** 文档编号:763672 上传时间:2024-03-07 格式:PPT 页数:29 大小:386.50KB
下载 相关 举报
webwork培训.ppt_第1页
第1页 / 共29页
webwork培训.ppt_第2页
第2页 / 共29页
webwork培训.ppt_第3页
第3页 / 共29页
webwork培训.ppt_第4页
第4页 / 共29页
webwork培训.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、1WebWork培训作者:moxie(安子)p 学员要求学员要求:掌握Java、Jsp、JavaServlet,并有一定的Web编程经验p 课程目的课程目的:理解WebWork的核心原理,掌握WebWork开发的相关知识,并能使用WebWork进行实际开发2目录WebWork入门WebWork原理WebWork标签库和ELWebWork实例3WebWork原理MVC模式MVC最初是在Smalltalk-80中被用来构建用户界面Model实现了应用领域的业务模型View用来展现模型中的数据和内部状态Control也称为Dialog,它协调Model与View,把用户请求翻译成系统识别的事件4J2

2、ee Web Framework之现状WebWork:最灵活、简单的Web框架Spring Web Framework:最全面的Web框架Struts:资源最丰富的Web框架Tapestry:组件化最完美的Web框架JSF:最接近的Web框架Portal:最适合集成的Web框架5WebWork概述XWork 1WebWork 1WebWork 2 Web Non-web6Action请求的动作都对应于一个相应的Action一个Action是一个独立的工作单元和控制命令它必需要实现XWork里的Action接口public interface Action extends Serializabl

3、e public static final String SUCCESS=success;public static final String NONE=none;public static final String ERROR=error;public static final String INPUT=input;public static final String LOGIN=login;public String execute()throws Exception;7例子用户注册register.jspxwork.xmlregisterSuccess.jspregister.actio

4、n8ActionSupport提供提供Action常用功能的一个基类常用功能的一个基类p错误消息的支持action and field specific errorsfield errors are automatically supported by viewsp国际化支持1 resource bundle per actionpervasive UI support for retrieving messages9ActionContext一次Action调用都会创建一个ActionContext调用:ActionContext context=ActionContext.getConte

5、xt()在WebWork中,它通过包装提供了对Servlet的访问:HttpSession context.getSession()HttpServletRequest parameters context.getParameters()pServletActionContext,继承ActionContext。可以直接访问servlet相关的API:PageContext,HttpServletRequest,HttpServletResponse,ServletConfig,ServletContext10二、WebWork原理XWork的层次:ActionProxyActionInvoc

6、ationActionActionProxy:管理Action的生命周期,它是设置和执行Action的起始点。ActionInvocation:在ActionProxy层之下,它表示了Action的执行状态。它持有Action实例和所有的Interceptor11WebWork原理12InterceptorsPractical AOPvery simple,no external dependencies allows you to intercept action invocationsHelp decouple and componentize your codeInterceptors

7、are organized into stackslists of interceptors applied in sequence.applied to any action or package of actionsWebWork is mostly implemented as a series of XWork interceptors13例子 TimerInterceptor public class TimerInterceptor implements Interceptor.public String intercept(ActionInvocation dispatcher)

8、.long startTime=System.currentTimeMillis();String result=dispatcher.invoke();long exTime=System.currentTimeMillis()-startTime;log.info(dispatcher.getProxy().getActionName()+ran in +exTime+ms.);return result;xwork.xml14Interceptor的执行顺序pInterceptor截获Action的执行,并在它的之前或之后调用相应的方 thisWillRunFirstIntercepto

9、r thisWillRunNextInterceptor thisWillRunLastInterceptor MyAction1 MyResult(result)thisWillRunLastInterceptor thisWillRunNextInterceptorthisWillRunFirstInterceptor15ValueStack由OGNL框架实现可以把它简单的看作一个ListStack Object:放入stack中的对象,一般是action。Stack Context(map):stack上下文,它包含一些列对象,包括request/session/attr/applica

10、tion map等。EL:存取对象的任意属性,调用对象的方法,遍历整个对象结构图。16ResultTypepResult它是Action执行之后返回的一个字符串常量它表示Action执行完成的状态。pResultType它是一个类它在Action执行,并返回result之后调用它用来决定WebWork使用什么方式展现界面/register/registerSuccess.jsp17三、WebWork标签库和EL取值输出迭代标签,可以输出Collection,Iterator,Enumeration,Map,array,XML Node,or XML NodeListstatus:用来取得迭代器

11、的状态:getCount(),getIndex(),isFirst(),isLast(),isEven(),isOdd()18Expression LanguageOGNL ExpressionResultemployee.namegetEmployee().getName()employee.toStringgetEmployee().toString()employee.relations0First element of the Relations collectionname in null,RickTrue is name is null or Rickemployee.relati

12、ons.nameCalls getName()on each relations in the collection returning a new collection例子员工登记例子员工登记19四、实例验证多模块处理一个Action类多方法文件上传防止重复提交进度条显示20验证XWork验证框架验证框架验证Action的属性减弱验证与Action之间的耦合验证信息存储在独立的xml文件中验证出错信息放置在Action中可插拔的验证类验证机制有Interceptor实现21已提供的验证类ValidatorResultRequiredFieldfield!=nullRequiredString

13、field!=null&string.length()0IntRangeInteger is in a given rangeDateRangeDate is in a given rangeEmailValid email fieldURLValid URL fieldExpression/FieldExpressionAny OGNL expression evaluates to trueeg.pet.name!=dogAllows you to create very powerful validations using just XML and your existing model

14、22例子注册验证register.jspxwork.xmlregisterSuccess.jspregister.actionRegisterAction-validation.xmlregister.jsp验证出错23多模块Include:使用多个XWork配置文件Package:package之间可以继承Namespace:用来区分不同package中的action24一个Action类多方法方法要求方法要求:无参数,返回一个字符串类型,抛出Exception,例如:public String doDefault()throws Excetpionreturn INPUT;p定义方式定义方

15、式1、直接访问,actionName!methodName.action。例如:register!doDefault.action2、在XWork中定义,使用method属性。例如:25文件上传fileUpload.jspxwork.xmluploadSuccess.jspfileUpload.action26防止重复提交(double click)在页面中设置session.setAttribute(tokenName,token);配置拦截器TokenInterceptorTokenSessionStoreInterceptor:保存了上次操作的Invocation27进度条显示waitInputxwork.xmlwaitSuccess.jspwait.actionwait.jsp28总结重用(松耦合/无侵入):Action接口、Action与Web无关、Interceptor功能强大:EL、验证框架灵活:FormBean/数据Model、多视图支持29结束谢谢各位!

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 职业教育

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服