欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    详谈Struts2的核心概念Word格式.docx

    • 资源ID:3175625       资源大小:147.46KB        全文页数:13页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    详谈Struts2的核心概念Word格式.docx

    1、 struts.enable.DynamicMethodInvocation=false struts.devMode=false3.2 核心配置文件-struts.xml struts.xml文件主要负责管理应用中的action映射,以及该action包含的result定义等。在struts.properties配置中的有一项struts.configuration.files,这里可以看出struts.xml这个文件名不一定是固定的,可以配置为其他文件名的。struts.xml内容主要包括:Action、Interceptor、Packages、Namespace等。后面的章节将详细介绍如

    2、何配置这些元素。 在struts.xml中可以使用标签把内容分到几个文件中去。这里非常像JSP中的jsp:动作标签,可以把其他文件的内容导入进来,被导入的每个配置文件必须和struts.xml文件有一样的格式。标签的格式如下所示。3.3 struts.xml的缺省实现 struts-default.xml这个文件被包含在struts2-core.jar中,文件名已经可以看出这个文件的作用是struts.xml的缺省配置,它将自动被加载然后导入到struts.xml中去。代码5-1是struts-default.xml的部分片段。3.4 Velocity模板规则文件 如果在程序中使用了Veloc

    3、ity(一个基于java的模板引擎,可以替代JSP作为显示页面)可以把文件velocity.properties放到classpath中去,系统将自动加载。同时还要配置struts-default.vm文件, 代码 velocity.properties # Velocity 资源定义. velocimacro.library = action-default.vm, tigris-macros.vm, myapp.vm4 struts.xml的配置 Struts2绝大多数的配置都是在struts.xml中完成的,学习struts.xml文件是学习使用struts2的基础。本节将详细讲述如何在

    4、struts.xml中定义和配置各种元素。4.1 action配置 action是Struts2的基础“工作单元”。配置一个基本的action只需要两个信息:action名字和对应的action类,这两部分就建立了一个最简单的action配置。属性“method”用来告诉Struts2调用action的那个方法。在action处理之后一般的需要展示处理结果给用户,所以还需要把action和result映射在一起。如代码所示。 代码 Action配置:struts.xml action name=helloWorld class=example.HelloWorld method=”doWork

    5、” result name=”ok” path=HelloWorld.jsp/action4.2 result配置 Struts2定义了一些默认result:error,input,login,none和success。开发者当然也可以根据应用情况自由的定义结果。结果以“名字-值”的形式影射到结果类型。result标签告诉Strtus 2在action被调用以后下一步做什么。result在struts.xml文件中定义,嵌套在标签里。如果location参数是唯一的参数,可以这样简单的定义:在result中添加参数-barmyPackage.barActionsuccess type=disp

    6、atcherparam name=locationfoo.jsp/result 4.3 拦截器(interceptor)配置 interceptor是能在一个action执行的前后执行的代码。它是做Web应用程序时很有用的工具。最常见的由Interceptor实现的功能如:安全检查(确保访问者是登陆用户)、跟踪日志(记录每个action)、效率瓶颈检查(记录每个action开始和结束的时间以检查程序中的瓶颈)。也可以把interceptor连在一起组成interceptor栈(interceptor-stack)。比如在action执行前同时做登陆检查,安全检查和记录日志,可以定义一个inte

    7、rceptor的栈。interceptor必须事先定义好,然后可以连在一起组成一个栈。如代码5-7所示,定义了一个interceptor和一个interceptor栈。4.4 包(package)配置 所谓packages就是把actions、results、results、types、interceptors这些元素打包到一个逻辑单元中去,从概念上讲,packages就更像一个程序中的对象,可以被其他子包从写,而且可以拥有自己独立的部分。Name属性是packages的必填元素,它作为一个关键字被后边的包引用;extends元素是可选的,它允许包扩展一个和多个前边定义的包。Abstract元

    8、素是可选的,如抽象类和抽象函数一样它是必须被继承的,可以申明一个不包含actions的package。4.5 命名空间(Namespace)配置 命名空间属性允许把action配置分成不同的命名空间,这样可以使功能不同action中使用相同的名字。默认命名空间用“”(空字符串)表示。如果系统在指定的命名空间中没有找到某个action,就会到默认命名空间中查找。可以在所有用extends扩展的命名空间外配置全局action不指定命名空间。 Struts2中有以“/”命名的根命名空间,它是请求直接来自应用程序根路径的时候的命名空间。和其他命名空间一样,如果在根命名空间中没有所需的action别名,

    9、系统会回到默认命名空间中查找。如代码5-9所示,这里使用了默认命名空间、“/”和声明了的命名空间“barspace”4.6 在struts.xml中定义Bean 在struts.xml中还可以作JavaBean的定义如下: s-在struts.xml中定义Bean -strutsbean type=com.opensymphony.xwork2.ObjectFactory name=myfactory class=pany.myapp.MyObjectFactory /struts4.7 在struts.xml中使用通配符 当配置文件中action mapping的数量很多的时候,使用通配符是

    10、一个很好的办法,可以将一些相似的mapping绑在一起,用一个比较通用的mapping来表示。在路径中用*来代替变化的部分,而action的处理类和JSP中1刚好是代替这个变量。-在struts.xml中使用通配符-/edit*” class=example.Edit1Action/mainMenu.jsp/1.jsp5 实现Action Action是Struts2编程的核心部分,反映了对Web应用程序的功能需求。Action在MVC模式中担任控制部分的角色,在Struts2中也使用的最多。每个请求的动作都对应于一个相应的action,action还可以负责存储数据/状态(以getter和s

    11、etter的方式)并且执行逻辑处理。 在本章中将关注如何实现action,以及action如何提供Web应用程序中所需的通用功能。除了Action接口之外,Struts2的action也可以选择实现其他可选择的接口,从而使action能够提供诸如国际化、校验、负责工作流和错误信息处理等功能。ActionSupport基类实现了Action接口并提供了大部分可选择口默认实现,将在本章深入讲述这个类。除此之外,也将探讨action是如何通过使用JavaBean属性提供输入和输出的,最后将介绍如何处理文件上传。5.1 实现Aciton接口 Struts2的Action接口来源于WebWork,全包名

    12、为com.opensymphony.xwork2.Action如代码5-10所示。在Struts2中定义action类时已经可以不实现Aciton接口,Struts2会以反射的方式来调用action类。5.2 扩展ActionSupport类 ActionSupport是一个让action类能够更快开始工作的基类。它包含了action能够提供的许多可选服务的默认实现,让开发者更容易地开始开发自己的action类,不需要在为这些可选服务提供具体实现了。同时能够改写可选择接口的任意一个方法实现并保持其他方法的默认实现。由于ActionSupport预建了许多开箱即用的功能,建议读者创建自己的act

    13、ion时都扩展ActionSupport类。ActionSupport实现了以下可选择接口,5.3 实现基本校验 通常在执行业务逻辑之前,校验用户提供的数据是十分表要的。这种字段校验包括“某个字段是必须的”、“某个字段必须大于某个值,小于某个值“等内容。为了自动执行校验,Sturts 2提供了一种能够在excuete()方法被调用之前调用其他方法对action进行处理的机制,这个机制由com.opensymphony.xwork2.Validateable接口提供,它包含了一个方法: public void validate() Validateable接口为action增加了一个标记,通过以

    14、上方法使得action能够自动被校验。 保存和显示校验的错误信息有接口ValidationAware来负责,这两个接口一般会同时使用。5.4 使用本地的资源文件 本节中将介绍另外两个接口TextProvider和LocalProvider,它们都是为了使用本地的资源文件而设计的。 在Java中用户语言和地区的信息被封装在java.util.Local类中,而action则通过一个定义与com.opensymphony.xwork.LocaleProvider接口的方法判断使用哪个Locale获取用于显示的信息文本,这个接口中只定义了一个方法: Public Locale getLocale()

    15、 在ActionSupport中,这个方法的默认实现为:通过调用AcitonContext.getContext ().getLocale()方法,利用ActionContext获得locale的值(关于ActionContext的使用将在后面的章节详细描述)。Struts2通过查询HttpServletRequest对象并调用它的getLocale () 方法将Local与action调用联系起来。5.5 用ActionContext与Web容器发生联系 在Action的接口定义中,excute()方法并没有HttpServletRequest和HttpServletResponse参数也就

    16、是说Struts2的Action不用去依赖于任何Web容器(不像Struts 1必须在Web容器中才能运行),不用与那些JavaServlet复杂的请求(Request)、响应(Response)关联在一起。但在Web应用程序开发中,往往需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对JavaServlet Http的请求、响应操作。Struts2 提供了一个工具,用ActionContext对象来与Web容器发生联系。 ActionContext(com.opensymphony.xwork.ActionContext)是Action执行时

    17、的上下文,上下文可以把它看作是一个Map,它存放是Action在执行时需要用到的对象,比如:上下文放有请求的参数(Parameter)、会话(Session)、Servlet上下文(ServletContext)、本地化(Locale)信息等。在每次执行Action之前都会创建新的ActionContext,ActionContext是线程安全的,也就是说在同一个线程里ActionContext里的属性是唯一的,这样的Action就可以在多线程中使用。5.6 高级输入 应用程序经常使用JavaBean表示一个域中的对象,包括User、Address、Block在内地的类就是这种JavaBean

    18、很好的例子。而在Web程序中很大一部工作都是将信息填充到这些对象中去和从Bean中获取数据信息在网页中表现。本节将以一个完整的实例来说明Sturts 2在这些方面提供了那些便利。5.7 使用Model-Driven Struts2中,提供了两种Action驱动模式:Property-Driven(属性驱动),Model-Driven(模型驱动的)。 模型驱动的Action很像Struts1中的FormBean,在传递过程中有一个单独的值对象来作为参数的载体,但在Struts2中这个值对象不必再继承任何接口,只要普通JavaBean就可以充当模型部分。很多情况下Bean的定义已经存在了,而且是不

    19、能修改的(如从外部引入的类或者是已经被大量代码引用的类),如果必须实现某个接口才能作为FromBean,不得不再新增一个类,Struts2的这个改进非常及时。5.8 使用Property-Driven Property-Driven 就是Action将直接用自己的字段来充当FormBean的功能,在Struts2入门一章中,HelloReader这个例子就是采用的这种方法,在Action中直接包含了message属性和它set、get方法。它一般用在页面表单比较简单的情况使用,而且可以直接把属性作为Action的字段,这样就不用在另写FormBean,减少了重复代码。 上一节的例子如果使用Pr

    20、operty-Driven方法,那就是将User与action类合并定义,把User中的属性值直接转移到action中去,在配置文件中也不必再增加modelDriven这个过滤器。6 Result类型介绍 Result是在Action执行完,一个结果返回后决定发生什么事的类。开发者可以自由的根据他们的应用和环境的需要创建自己的Result类型。例如在Struts2中Servlet和Velocity结果类型已经被创建用来显示web应用程序的画面。本节将介绍Struts2 内置的几种Result类型和如何自定义开发Result。6.1 内置Result类型 所有的Result类型都实现了com.o

    21、pensymphony.xwork.Result接口。这个接口是所有action执行结果的通用接口,不管这个结果是用来显示一个网页还是产生一个E-mail,发送一个JMS消息还是别的。 在struts-default.xml中定义了系统提供的缺省Result类型,把它们映射为action配置中可以引用的名字,在action配置就就不用再使用长类名直接使用这些别名就可以了。6.2 默认Result Dispatcher Result是最常用的一种result,它也是Struts2默认的result,又称为通用resut。action执行完后,请求会导向对应的View,相当于标签实现的跳转功能。将

    22、同一个HTTP请求中的内容分发至某一个页面(dispatcher类型的result的使用)只要配置文件包含了struts-default.xml,而且package继承了struts-default,那么使用dispatcher result并不需要其他设置。示例:6.3 页面跳转 Result Redirect Result与Dispatcher Result作用类似也是实现页面跳转。对上次的响应将重定向到指定的位置,可以理解为在客户端跳转用户又重新请求了一个新的URL。redirect是重新产生一个新的request,因此原来request保存的东西将不再有效,比如不能通过再requet.

    23、getAtrribute()取得对象,也不能取得action的实例、errors、field errors等。 Redirect Result与Dispatcher Result的区别于源于JSP篇中标签与response.redeiret()的区别。6.4 创建action链 Chain Result是一种result 类型,它基于自己的拦截器stack(堆栈)和result调用一个action,这样允许一个action附带着原来的状态将请求转到目标action Struts2提供把多个Action按照预先定义好的顺序或者流程链接起来的能力。这个特性通过给指定的Action设置一个Chain

    24、 Result,然后通过一个ChainingInterceptor拦截目标Action来实现。6.5 整合各种View技术 Velocity、Freemarker、JasperReports、xslt这4种result都是为了整合不同的视图技术而设计的。 1Velocity Result:Velocity是一个基于java的模板引擎(template engine)。 2Freemarker Result:Freemarker也是一个模板引擎,允许JavaServlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。 3JasperReports result:JasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其他IDE报表工具一样来制作报表。 4XSLT Result:XSLT Result用XSLT来转换action对象到XML。6.6 自定义result Struts2也允许用户自定义自己的result类型,只要实现com.opensymphony.xwork2.Result接口就可以了。如代码5-29所示,模拟了一种result作用是根据处理结果将给指用户发送一份E-mail。这个result需要4个参数to、from、subject和body7 拦截器(Inte


    注意事项

    本文(详谈Struts2的核心概念Word格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开