struts2以及hibernate,spring合称SSH框架,现今主流框架之一。版本介绍更新日期目录1.学习 Struts2的前提条件2. Struts2结构图3.入门级例子引入依赖包在web.xml中增加过滤器配置编写 Action类增加 Struts2的配置文件编写JSP访问 Action5566677778884. Action的访问路径扩展名访问路径的容错能力配置 action时如果不指定 method属性5. Result配置6.如何将参数从界面传递到 Action?7.如何将数据从 Action传输到JSP?通过 Action的属性传输通过 Actioncontext传输通过 request/ session等传输10传递复杂对象及集合对象利用0GNL表达式访问静态方法、普通的实例方法及 Action对象中的方法12如何在 Iterator循环体内访问外部的同名属性?128.数据传输背后机制: ValueStack(值栈)13k基础:OGNIRoot对象14Context对象16利用0GNL表达式进行赋值17利用0GNL调用对象的方法19利用OGNL访问数组、集合对象19更多的特性,请参考官方的文档20应用: ValuestackModeldriven24为什么需要 Mode driven24Modeldriven背后的机制?27理解常见的陷阱及其解决方法89. Struts2中的类型转换版本介绍更新日期如何编写类型转换器?29全局类型转换30局部类型转换31Struts2中复杂参数的传递34List、Map等(利用泛型,非常方便)34Struts2的文件上传35Interceptors(拦截器)36I18N处理37什么是I18N问题?37个简单的例子37Locale对象Struts2对Il8N问题支持的一个简单的例子仝局资源文件的定义41如何改变当前系统的语言环境?41trusts2标签库( Taglib)42版本介绍更新日期介绍1.学习 Struts2的前提条件必须理解 Servlet/JsP/ Taglib技术如果具备 Struts1的学习开发经验更好2. Struts2结构图ControllerModesetXxxdexecuteActionviewge:XxxOJSP说明:本图描述了 Struts2中的主要部件,以及请求处理过程。 Struts2也是基于请求-响应模式!Struts2是一个MVC框架。主要用于呈现层的开发。Struts2提供了一个来处理所有的请求,这个 Filter将根据Struts2配置文件的指示,符合要求的客户端请求,将会被转交给 Action来处理; Action处理完之后,Struts2将负责转向视图进行呈现Interceptor(拦截器)是 Struts2中一个灵活的、可对请求处理过程进行配置的机制我们要学习 Struts2以下重点内容:Struts2的请求处理过程?Struts2的 Action机制?页面参数如何被传递到 Action中?Action如何向JSP传递数据?Struts2的标签库如何降低JSP编程的难度?版本介绍更新日期Struts2与其它框架如何集成?我们将逐步通过例子,让大家理解 Struts2中的各种核心问题。3.入门级例子根据上述了解,要开发第一个 Struts2程序,我们需要完成下面的事项:在web.xm1中增加 Filter(过滤器)配置编写 Action编写 Struts2的配置文件编写JSP引入依赖包我们的第一个 Struts2应用程序,将基于最新的 struts2版本: struts2.2.1版本。我们首先创建个Web应用程序,引入下列依赖包:围 freemarker16.jar2Javassist-301-30.jarsstruts2-core-2.2.1.jar幽xrl-re2.2.1.jr这些依赖包,可以从 Struts2.2.1的解压日录下的apps/ struts2- blank-2.2.1.war文件中获得。Commons- fileupload和 commons-io是文件上传必须的依赖包。Freemarker是 struts2中的HTM相关标签库( taglib)的依赖包Javassist和ognl是OCNL相关依赖包(0GNL是 Struts2中的表达式语言,非常核心的依赖包)Struts2-core就是 struts2本身的类库Ⅹwork-core是 struts2非常核心的依赖包,正是它确定了请求处理的基本过程(它原本属于 webwork)。在web.xm1中增加过滤器配置这个过滤器要过滤所有的请求。版本介绍更新日期编写 Action类这个 Action类已经是简单到能再简单∫!每次调用,都是不同的对象!世界,你好增加 Struts2的配置文件在类路径的根目录下,添加一个名为 struts.xm1的文件,内容如下:Package中的name属性是必须的,它可以是随意的一个名称, namespace是用来定义访问 Action的URL地址前缀(马上就介绍如何访问这个 Action),它必须以“/”开头; extends表示本配置是继承另外一个packag中的配置信息( struts- default是 struts2中的默认 package)Action配置中的name是用来定义如何访问 Action的; class当然就是对应的 action类了; method表示访问 action的哪个方法: result定义的是这个 action调用的返回值代表的是转向哪里!编写JSP请随意编写一个JSP: first.jsp,并放置在web应用部署的根目录下。访问 Action请在浏览器地址栏输入http://localhost:[gFa]/[conTextPath]/test/hello.action版本介绍更新日期4. Action的访问路径扩展名缺省以. action结尾,请参考: default. properties文件,可以通过配置改变这一点上述配置,将使得可以通过. action或.do或. webwork访问 Action对象访问路径的容错能力比如:我们配置某个 package的 name space="/ simple",在这个 package里面有一个 action的name是 hello那么,我们可以通过:或/ simple/a/b/c/ hello. action等等者可以访问到这个 action。主要是在 struts2中,对于访问的路径有一和容错能力,可以根据路径依次査找相应的 package中的 action配置ε ction时如果不指定 method属性那么,用类似卜面的方式http://localhost/struts2/simplc/hello!say.action可以调用e11这个 action中的say方法或者用下面的方式:http://localhost/struts2/simplc/hcllo.actionmethodsay-xxx可以调用say方法,在这里,参数的名称是: method:say,这是最主要的, struts2正是根据参数的名称来决定该调用哪个方法,而不是参数的值,所以参数的值可以是仟意的或者用下面的方法http://localhoststruts2/simple/hello.action默认调用he1lo这个 action中的 execute方法Result配置Result配置,主要是定义结果转向的逻辑名称,及其对应的转向地址。缺省情况下,是服务器端重定向(即 forward),也可以直接指定类型为 redirect,如下所示:在 rcsult中,如果不指定namc属性,这个 rcsult表示 success转向。6.如何将参数从界面传递到 Action?你可以把 Struts2中的 Action看做是 Struts的 Action+ Actionform,即只需在 Action中定义相关的属性(要有 getters/ setters方法),然后界面传参的名称跟这些属性保持·致即可。普通的数据关型,将版本介绍更新日期可自动转换。(空字符串转换为int类型时将报错)7.如何将数据从 Action传输到JSP?可通过多种方式传输通过 Action的属性传输直接给 action的属性赋值,在转向之后的JSP中,直接用标签

资源预览