webwork培训多媒体课件_第1页
webwork培训多媒体课件_第2页
webwork培训多媒体课件_第3页
webwork培训多媒体课件_第4页
webwork培训多媒体课件_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WebWork培训作者:moxie(安子)学员要求:掌握Java、Jsp、JavaServlet,并有一定的Web编程经验课程目的:理解WebWork的核心原理,掌握WebWork开发的相关知识,并能使用WebWork进行实际开发1webwork培训目录WebWork入门WebWork原理WebWork标签库和ELWebWork实例2webwork培训WebWork原理MVC模式MVC最初是在Smalltalk-80中被用来构建用户界面Model实现了应用领域的业务模型View用来展现模型中的数据和内部状态Control也称为Dialog,它协调Model与View,把用户请求翻译成系统识别的事件3webwork培训J2eeWebFramework之现状WebWork:最灵活、简单的Web框架SpringWebFramework:最全面的Web框架Struts:资源最丰富的Web框架Tapestry:组件化最完美的Web框架JSF:最接近的Web框架Portal:最适合集成的Web框架4webwork培训WebWork概述XWork1WebWork1WebWork2

Web

Non-web5webwork培训Action请求的动作都对应于一个相应的Action一个Action是一个独立的工作单元和控制命令它必需要实现XWork里的Action接口publicinterfaceActionextendsSerializable{

publicstaticfinalStringSUCCESS="success";publicstaticfinalStringNONE="none";publicstaticfinalStringERROR="error";publicstaticfinalStringINPUT="input";publicstaticfinalStringLOGIN="login";

publicStringexecute()throwsException;}6webwork培训例子-用户注册register.jspxwork.xmlregisterSuccess.jspregister.action7webwork培训ActionSupport提供Action常用功能的一个基类错误消息的支持

actionandfieldspecificerrors

fielderrorsareautomaticallysupportedbyviews国际化支持

1resourcebundleperaction pervasiveUIsupportforretrievingmessages8webwork培训ActionContext一次Action调用都会创建一个ActionContext调用:ActionContextcontext=ActionContext.getContext()在WebWork中,它通过包装提供了对Servlet的访问:HttpSession——context.getSession()

HttpServletRequestparameters——context.getParameters()ServletActionContext,继承ActionContext。可以直接访问servlet相关的API:PageContext,HttpServletRequest,HttpServletResponse,ServletConfig,ServletContext9webwork培训二、WebWork原理XWork的层次:ActionProxyActionInvocationActionActionProxy:管理Action的生命周期,它是设置和执行Action的起始点。ActionInvocation:在ActionProxy层之下,它表示了Action的执行状态。它持有Action实例和所有的Interceptor10webwork培训WebWork原理11webwork培训Interceptors"PracticalAOP"verysimple,noexternaldependenciesallowsyoutointerceptactioninvocationsHelpdecoupleandcomponentizeyourcodeInterceptorsareorganizedinto'stacks'listsofinterceptorsappliedinsequence.appliedtoanyactionorpackageofactionsWebWorkismostlyimplementedasaseriesofXWorkinterceptors12webwork培训例子-TimerInterceptorpublicclassTimerInterceptorimplementsInterceptor{ ...

publicStringintercept(ActionInvocationdispatcher)...{ longstartTime=System.currentTimeMillis();

Stringresult=dispatcher.invoke();

longexTime=System.currentTimeMillis()-startTime; (dispatcher.getProxy().getActionName()+"ranin"+exTime+"ms."); returnresult;

}}xwork.xml<interceptors> <interceptorname="timer" class="erceptor.TimerInterceptor"/></interceptors>13webwork培训Interceptor的执行顺序Interceptor截获Action的执行,并在它的之前或之后调用相应的方<interceptor-stackname="xaStack"> <interceptor-refname="thisWillRunFirstInterceptor"/> <interceptor-refname="thisWillRunNextInterceptor"/> <interceptor-refname="thisWillRunLastInterceptor"/></interceptor-stack>thisWillRunFirstInterceptor thisWillRunNextInterceptor thisWillRunLastInterceptor MyAction1 MyResult(result) thisWillRunLastInterceptor thisWillRunNextInterceptorthisWillRunFirstInterceptor14webwork培训ValueStack由OGNL框架实现可以把它简单的看作一个ListStackObject:放入stack中的对象,一般是action。StackContext(map):stack上下文,它包含一些列对象,包括request/session/attr/applicationmap等。EL:存取对象的任意属性,调用对象的方法,遍历整个对象结构图。15webwork培训ResultTypeResult 它是Action执行之后返回的一个字符串常量 它表示Action执行完成的状态。ResultType

它是一个类 它在Action执行,并返回result之后调用 它用来决定WebWork使用什么方式展现界面<result-typename="dispatcher"class="com.opensymphony.webwork.dispatcher.ServletDispatcherResult"default="true"/><resultname="success"type="dispatcher">/register/registerSuccess.jsp</result>16webwork培训三、WebWork标签库和EL<ww:propertyvalue=“”/>取值输出<ww:iteratorvalue=“”status=“”/>迭代标签,可以输出Collection,Iterator,Enumeration,Map,array,XMLNode,orXMLNodeList status:用来取得迭代器的状态:getCount(),getIndex(),isFirst(),isLast(),isEven(),isOdd()<ww:iftest=“”></ww:if> <ww:elseiftest=“”></ww:eleseif> <ww:else></ww:else>17webwork培训ExpressionLanguageOGNLExpressionResultgetEmployee().getName()employee.toStringgetEmployee().toString()employee.relations[0]FirstelementoftheRelationscollectionnamein{null,"Rick"}TrueisnameisnullorRickemployee.relations.{name}CallsgetName()oneachrelationsinthecollectionreturninganewcollection例子-员工登记18webwork培训四、实例验证多模块处理一个Action类多方法文件上传防止重复提交进度条显示19webwork培训验证XWork验证框架验证Action的属性减弱验证与Action之间的耦合 验证信息存储在独立的xml文件中 验证出错信息放置在Action中可插拔的验证类验证机制有Interceptor实现20webwork培训已提供的验证类ValidatorResultRequiredFieldfield!=nullRequiredStringfield!=null&string.length()>0IntRangeIntegerisinagivenrangeDateRangeDateisinagivenrangeEmailValidemailfieldURLValidURLfieldExpression/FieldExpressionAnyOGNLexpressionevaluatestotrueeg.!="dog"AllowsyoutocreateverypowerfulvalidationsusingjustXMLandyourexistingmodel21webwork培训例子-注册验证register.jspxwork.xmlregisterSuccess.jspregister.actionRegisterAction-validation.xmlregister.jsp验证出错22webwork培训多模块Include:使用多个XWork配置文件Package:package之间可以继承Namespace:用来区分不同package中的action23webwork培训一个Action类多方法方法要求:无参数,返回一个字符串类型,抛出Exception,例如:publicStringdoDefault()throwsExcetpion{ returnINPUT;}定义方式 1、直接访问,actionName!methodName.action。例如:register!doDefault.action 2、在XWork中定义,使用method属性。例如:<actionname="registerDefault"class="com.skyon.demo.register.RegisterAction"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论