Struts2基础复习.doc_第1页
Struts2基础复习.doc_第2页
Struts2基础复习.doc_第3页
Struts2基础复习.doc_第4页
Struts2基础复习.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

Struts2基础整理(一)一:开发环境和步骤1创建Java Web工程2导入开发Struts2需要的jar文件.3创建相关的jsp文件.4创建action文件5编写Struts2的配置文件6在web.xml中加入Struts2 MVC框架启动配置二:编写Struts2的配置文件/Success.jsp /Error.jsp 注释:1一个典型的 struts.xml 文件可以有一个或多个包2每个 package 元素都必须有一个 name 属性3namespace 属性是可选的, 如果它没有给出, 则以 “/” 为默认值. 4struts-default.xml 文件里定义好了结果类型和拦截器5action 元素的 class 属性是可选的. 如果没有配置 class 属性, Struts 将把 com.opensymphony.xwork2.ActionSupport 作为其默认值6每个 action 都必须有一个 name 属性, 该属性和用户请求 servletPath 之间存在着一一对应关系7result 元素: 的一个子元素, 它告诉 struts 在完成动作后把控制权转交到哪里. result 元素(的name 属性)对应着 Action 方法的返回值. 因为动作方法在不同情况下可能返回不同的值, 所以同一个 action 元素可能会有多个 result 元素,result 元素的 name 属性默认值为 “success“8type 属性负责指定结果类型,默认值为 dispatcher9如果没有为action指定class,默认是ActionSupport。三:Struts2的处理流程图四:通过继承ActionSupport来实现Action。在ActionSupport中提供了输入验证、国际化、execute等常用方法。五:Struts2访问Web元素 如何得到requestsessionapplicationprivate Map request;private Map session;private Map application; request = (Map)ActionContext.getContext().get(request);session = ActionContext.getContext().getSession();application = ActionContext.getContext().getApplication();如何向requestsessionapplication中存储数据request.put(r1, r1);session.put(s1, s1);application.put(a1, a1);如何得到requestsessionapplication中的数据 六:验证框架要实现基于XML配置方式实现输入校验,所定义的Action需要继承ActionSupport或者实现Validateable接口:注释:: 根元素:指定action中要校验的属性,name属性指定将被验证的表单字段的名字:指定校验器, type 指定验证规则,校验器requiredstring是由系统提供的,这些校验器的定义可以在xwork-2.x.jar中的com.opensymphony.xwork2.validator.validators下的default.xml中找到。:子元素可以向验证程序传递参数:子元素为校验失败后的提示信息,如果需要国际化,可以为message 指定key属性,key的值为属性文件中的key。required 必填校验器 性别不能为空!requiredstring 必填字符串校验器 true 用户名不能为空!stringlength:字符串长度校验器102trueint:整数校验器1150年龄必须在1-150之间基于XML配置方式对指定action方法实现输入校验时需要注意:当校验文件的取名为ActionClassName-validation.xml时,会对 action中的所有处理方法实施输入验证。如果你只需要对action中的某个action方法实施校验,那么,校验文件的取名应为:ActionClassName-ActionName-validation.xml,其中ActionName为struts.xml中action的名称。例如:在实际应用中,常有以下配置:/WEB-INF/page/message.jsp/WEB-INF/page/addUser.jspUserAction中有以下两个处理方法:public String add() throws Exception .public String update() throws Exception .例如对add()方法验证时,校验文件的名应取为UserAction-user_add-validation.xml七:Struts2标签库 1 OGNL相对其它表达式语言具有下面几大优势: 1、支持对象方法调用,如xxx.doSomeSpecial(); 2、支持类静态的方法调用和值访问,表达式的格式: 类全名(包括包路径)方法名 | 值名,例如: java.lang.Stringformat(foo %s, bar) 或tutorial.MyConstantAPP_NAME; 3、支持赋值操作和表达式串联,如price=100, discount=0.8, calculatePrice(),这个表达式会返回80; 4、访问OGNL上下文(OGNL context)和ActionContext; 5、操作集合对象。 Ognl 有一个上下文(Context)概念,说白了上下文就是一个MAP结构,它实现了java.utils.Map的接口.2 ValueStack(值栈): 贯穿整个 Action 的生命周期(每个 Action 类的对象实例都拥有一个ValueStack 对象). 相当于一个数据的中转站. 在其中保Action 对象和其他相关对象3在 ValueStack 对象的内部有两个逻辑部分: ObjectStack: Struts 把动作和相关对象压入 ObjectStack 中-List ContextMap: Struts 把各种各样的映射关系(一些 Map 类型的对象)压入 ContextMap 中Struts 会把下面这些映射压入 ContextMap 中 parameters: 该 Map 中包含当前请求的请求参数 request: 该 Map 中包含当前 request 对象中的所有属性 session: 该 Map 中包含当前 session 对象中的所有属性 application:该 Map 中包含当前 application 对象中的所有属性 attr: 该 Map 按如下顺序来检索某个属性: request, session, applicationproperty标签用于输出指定值 例::输出栈顶的值 输出: username=username_valueStack, msgxx=msg_valueStack set标签用于将某个值放入指定范围var:变量的名字,name,id和var表达的含义是一样的,name,id被var替代scope:指定变量被放置的范围,该属性可以接受application、session、request、 page或action。如果没有设置该属性,则默认放置在action中。value:赋给变量的值.如果没有设置该属性,则将ValueStack栈顶的值赋给变量。例子: bean标签: 实例化一个符合JavaBeans规范的class,标签体内可以包含几个Param元素,用于调用setter方法给此class的属性赋值.name:要被实例化的class名字(必须符合JavaBeans规范) var: 赋给变量的值.放置在request作用域中如果没有设置该属性,则对象被放置到栈顶例子:Action:通过指定命名空间和action名称,该标签允许在jsp页面直接调用Action name:action名字(不包括后缀,如.action) namespace:action所在命名空间 executeResult:Action的result是否需要被执行,默认值是false不执行例子: /ognl/ongl.jsp?msg=$msgxx 八:应用程序国际化 软件的本地化:一个软件在某个国家或地区使用时,采用该国家或地区的语言,数字,货币,日期等习惯。软件的国际化:软件开发时,让它能支持多个国家和地区的本地化应用。使得应用软件能够适应多个地区的语言和文化风俗习惯。l 资源文件和资源包要用Struts实现国际化和本地化,首先要定义资源文件的名称,这个文件会包含用默认语言编写的会在程序中出现的所有消息。这些消息以”键值“对的形式存储,如下:error.validation.localtion = The entered location is invalid当对一个应用程序进行国际化处理时,所要用的各种语言版本的”标签“信息应该存放在不同的属性文件中,每一个这样的文件对应一种语言版本。所有属性文件合在一起称为资源包(Resource Bundle)。属性文件的命名格式可分为以下两种: a)文件名前缀.properties b)文件名前缀_语言种类.properties文件名后缀必须是properties,前缀可自由书写,其中语言种类字段必须是有效的ISO语言代码。l 文件名前缀.properties默认的形式,当其他属性文件找不到时,会默认的寻找此属性文件。问答题:1:简述Struts.xml作用struts.xml文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。struts.xml中主要配置Struts项目的一些全局的属性,用户请求和响应Action之间的对应关系,以及配置Action中可能用到的参数,以及处理结果的返回页面。还包括各种拦截器的配置等。2.:控制器Action的作用(1)Action类中包含了对用户请求的处理逻辑,因此也把Action称为Action业务控制器。Action是应用的核心,业务控制器是Struts2中实现业务控制的中心,除了保存用户的数据外,它也负责调用其他模型组件在execute()方法中进行数据处理。(2)用来调用某个java类的某个方法进行数据预处理和一些相关的业务逻辑处理,然后把最终处理结果和要返回的对象放在request或者session里面,最后更具结果确定返回那个result,这个可以是一个页面,也可带或者不带参数访问别的服务或者链接.或者什么都不做。或在它里面调用到里面的方法,然后在返回一个字符串,调转到与字符串相对于的页面中。3:实现国际化的具体流程(1) 由于不同地区使用的操作系统的环境不同,所以,在获得客户端,地区的语言环境后,在struts.xml中找到相应的国际化资源文件,如果操作系统的环境是中文的,就加载中文国际化资源文件,所以国际化要支持多个语言的国际化资源文件,并配置struts.xml文件(2) 根据选择的语言加载相应的国际化资源文件,视图通过struts标签读取国际化资源文件把数据输出到页面上,完成页面显示Struts2基础整理(二)1, MVC设计模式Model:模型,负责业务逻辑处理,一般由JavaBean构建View:视图,应用程序的显示界面,一般由Jsp,Html构建Controller:控制器,当用户把请求从View部分传过来,控制器就把该请求发给适当的业务逻辑组件处理,请求完成后又返回Controller,Controlle部分一般由Servlet组成2, Struts2工作原理:Struts2使用拦截器处理用户请求,用户请求提交后要经过多个拦截器,拦截之后交给核心控制器(过滤器:FilterDispatcher),核心控制器读取Struts.xml配置文件,根据配置文件中的信息指定某个控制器Action来处理用户数据。3, Struts2框架所必须的JARstruts2-core-2.3.14.jar : Struts 2框架的核心类库。 xwork-core-2.3.14.jar : XWork类库,Struts 2在其上构建。 ognl-3.0.6.jar : 对象图导航语言(Object Graph Navigation Language), struts2框架通过其读写对象的属性。 freemarker-2.3.19.jar : Struts 2的UI标签的模板使用FreeMarker编写 commons-logging-1.1.1.jar : ASF出品的日志包,Struts 2框架使用这个日志 包来支持Log4J和JDK 1.4+的日志记录。 commons-fileupload-1.2.2.jar : 文件上传组件。 commons-io-2.0.1.jar : 上传文件依赖的jar包。 common-lang3-3.1.jar和javassist-3.11.0.GA.jar4, OGNL(图像导航语言)表达式:通过表达式语法,可以存取对象的任意属性,调用对象的方法等功能,例如: request就是对象,这个对象取出了name的属性值5, Struts2的标签库:分为三大类:UI(生成用户界面的标签),非UI标签:用来访问数据,逻辑控制,及AJAX标签要想使用Struts2的标签库中的标签,首先需要在WEB.XML文件中映入Struts的标签,代码如下: /struts-tags WEB-INF/lib/struts2-core.jar此外还需要在JSP页面中引入如下代码:例如:习题一:1, Struts2是基于MVC的web框架技术2, MVC设计模式的控制器是Servlet3, Struts2的业务控制器是Action4, Struts2的核心配置文件是Struts.xml5, Struts2集成了struts和hirberate框架的优点6, Struts2的核心控制器是FilterDispater7, Struts2的视图组件有:HTML,JSP,Struts标签,FreeMaker等简述什么是MVC设计模式MVC(Model View Controller)模型视图控制器 MVC与模板概念的理解,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。模型视图控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。 MVC如何工作MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。 视图 视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services. 如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。 模型 模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。 控制器 控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。习题二1, Struts.xml配置文件中能够把配置文件包含进来的元素是include2, Struts.xml配置文件中,对业务控制器进行配置的元素是action3, Struts2中为Action接口提供一个实现类的是ActionSupport4, Struts2中常用的表达式语言是OGNL5, Struts2框架的两种配置文件格式是perity6, Struts2框架中,通过包配置管理Action和拦截器7, OGNL有三个参数表达式,根对象,上下文环境8, Struts标签库分为三大类UI标签和非UI标签和AJAX标签9, 用户界面标签分为表单标签和非表单标签10, 非用户界面标签可分为控制标签和数据标签Struts.xml配置文件作用答:Struts2的核心配置文件是struts.xml,struts.xml具有重要的作用,所有用户请求被Struts2核心控制器FilterDispatcher拦截,然后业务控制器代理通过配置管理类查询配置文件struts.xml中由哪个也Action处理。struts.xml 为Struts 2的核心配置文件,struts.xml文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。struts.xml中主要配置Struts项目的一些全局的属性,用户请求和响应Action之间的对应关系,以及配置Action中可能用到的参数,以及处理结果的返回页面。还包括各种拦截器的配置等。Struts2核心控制器FilterDispater的作用(1)读取静态数据信息(2)决定需要转发或者导航的Action配置(3)创建Action的Context(4)创建Action代理(5)内存清理和性能优化Struts2业务控制器Action的作用用来调用某个java类的某个方法进行数据预处理和一些相关的业务逻辑处理,然后把最终处理结果和要返回的对象放在request或者session里面,最后更具结果确定返回那个result,这个可以是一个页面,也可带或者不带参数访问别的服务或者链接.或者什么都不做。习题三1,Struts2中用于根据用户语言环境在页面显示不同语言的是国际化2,加载国际化资源文件时要用的拦截器是I18N3,Struts2国际化资源文件的后缀是.properties4,Struts2框架中,对用户输入数据的校验分为客户端

温馨提示

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

最新文档

评论

0/150

提交评论