Yaio 4一、准备工作及实例 41.解压struts-2.1.6-all.zip 42.六个基本包 43.初识struts2配置文件 4(1).web.xml文件 4(2).struts.xml文件 4(3).struts.properties(参default.properties) 4 (4)struts-default.xml 5(5)其它配置文件 54.让MyEclipse提示xml信息 55.如何使用alt+/提示 56.实例 57.开启struts2自带的开发模式常量 78.vo传参模式 89.ModerDriven传参模式(不建议采用) 810.为什么要使用struts2代替struts1.x 9二、struts.xml配置及例程 91.配置文件的优先级 92.配置形式 93.package配置相关 104.分工合作include:指定多个配置文件 125.tomcat认证访问 126.初识拦截器 137.Action中的method属性 158.使用ForwardAction实现页面屏蔽。
178.使用default-Action配置统一访问 17小结Action 189.使用通配符 1810.使用0配置:ZERO Annotation 1911.Result配置详解 1912.异常处理 24三、在Action获取Scope对象 25方式一、与Servlet解耦合的非IOC方式 25方式二、与Servlet解耦合的IOC方式 27 方式三、与Servlet耦合的非IOC方式 27 方式四、与Servlet耦合的IOC方式 28四、OGNL与ValueStack(VS) 291.值栈入门 292.OGNL入门 313.普通方法访问 314.静态方法访问 315.默认类Math的访问 326.调用普通类的构造方法 327.集合对象初步 328.集合对象进阶 339.N语法top语法 3410.获取Stack Context中的信息 3511.总结$ # %的区别 3512.总结OGNL[重点] 35五、拦截器 361.概述strust2中的拦截器 362.自定义拦截器 37方式一,实现Interceptor接口。
37方式二、继承AbstractInterceptor抽象类 38 方式三、继承MethodFilterInteceptor类 383.使用来MethodFilterInterceptor灵活拦截 414.使用默认的execAndWait拦截器 425. TokenInterceptor防止表单重复提交。
446.使用拦截器实现权限验证 467.拦截器中的注解 488.使用PreResultListener实现回调 50六、使用标签 521.基础表单标签 522.单选按钮和复选框: 523.三种方式实现下拉列表 524.二级联动 545.其它表单标签 576.其它常用标签的使用(代码参名为“补充”的文件夹下的tag.jsp) 59七、国际化 601.action级别下的国际化 602.配置package的资源文件 633.app级别的资源文件 634.使用资源文件的原理 635.选择使用资源文件 64八、验证机制 651.基于手工编码的校验 65简析校验流程: 692.基于XML配置形式的校验 69九、文件上传下载(了解) 711. 上传实例 712.下载实例 74十、类型转换 751.基于Action的直接属性转换 752.基于Action的间接属性vo转换 76十一、注解配置 77十二、总结本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及提供的app实例。
下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图来看: 78Yaio一、准备工作及实例1.解压struts-2.1.6-all.zipapps目录:struts2自带的例子程序docs目录:官方文档。
lib 目录:存放所有jar文件。
Src 目录:源文件存放地2.六个基本包struts2-core-2.1.6.jar :开发的核心类库freemarker-2.3.13.jar :struts2的UI标签的模板使用freemarker编写commons-logging-1.0.4.jar :日志包OGNL-2.6.11.jar :对象图导航语言,通过它来读写对象属性xwork-2.1.2.jar :xwork类库,struts2在其上进行构建commons-fileupload-1.2.1.jar:文件上传组件,2.1.6版本后必须加入此jar包特别需要说明的是目前strust2的最新版本是struts-2.1.6,它作为2.1.X 的正式版。
特别要注意导入commons-fileupload-1.2.1.jar包,在此jar包中包含了RequestContext类,如果不导入该jar包将会报异常。
3.初识struts2配置文件(1).web.xml文件主要完成对StrutsPrepareAndExecuteFilter的配置(在以前的版本中是对FilterDispatcher配置,新版本同样支持用FilterDispatcher配置),它的实质是一个过滤器,它负责初始化整个Struts框架并且处理所有的请求。
这个过滤器可以包括一些初始化参数,有的参数指定了要加载哪些额外的xml配置文件,还有的会影响struts框架的行为。
除了StrutsPrepareAndExecuteFilter外,Struts 还提供了一个ActionContexCleanUp类,它的主要任务是当有其它一些过滤器要访问一个初始化好了的struts框架的时候,负责处理一些特殊的清除任务。
(2).struts.xml文件框架的核心配置文件就是这个默认的struts.xml文件,在这个默认的配置文件里面我们可以根据需要再包括其它一些配置文件。
在通常的应用开发中,我们可能想为每个不同的模块单独配置一个struts.xml文件,这样也利于管理和维护。
这也是我们要配置的主要文件。
(3).struts.properties(参default.properties)在Struts框架使用了很多属性,我们可以通过改变这些属性来满足我们的需求。
要改变这些属性,只需在struts.properties文件中指定属性的key和value 即可。
属性文件可以放在任何一个包含在classpath中的路径上,但是通常我们都把它放在/WEB-INF/classes目录下面。
我们可以在struts-default.properties 文件中找到一个属性的列表。
(4)struts-default.xml此文件是struts2框架默认加载的配置文件,它定义了struts2一些核心bean和拦截器,它会自动包含(included)到struts.xml文件中(实质是通过<package extends="struts-default">),并为我们提供了一些标准的配置。
我们可以在struts2-core.jar中找到这个文件。
(5)其它配置文件velocity.properties,struts-default.vm,struts-plugin.xml4.让MyEclipse提示xml信息当我们在编写struts.xml时,发现eclipse并不会给出帮助提示,那是因为MyEclipse默认并不支持struts2,所以我们需要手工导入dtd以支持提示。
步骤:[window][preferences][MyEclipse][Files and Editors][XML][xml Catelog]然后在右边点add添加:location为dtd文件所在的位置(struts-2.0.dtd文件struts2-core-2.1.6.jar中可以得到),KeyType选择URI,Key为struts-2.0.dtd文件中文档声明的内容(),在struts.xml文件中也有此key值。
5.如何使用alt+/提示在MyEclipse6.5中,默认的提示为Ctrl+Space,而它会与我们的输入法切换冲突,使提示失效。
找到key,先取消Content Assist命令的绑定,再用“alt+/”来绑定。
6.实例步骤一,新建myStruts2项目,并导入struts2的六个基本jar包。
步骤二,建立LoginAction文件,主要代码如下:package com.asm;import com.opensymphony.xwork2.Action;public class LoginAction implements Action {private String username;private String password;...省略get/set方法public String execute() throws Exception {if (username.equals("struts2")) {return "loginSuccess";} else {return "loginFailure";}}}说明:实现了Action接口,主要是为了保证execute的正确定义,其实我们也可以不实现此接口,只要能保证execute方法书写的正确书写(方法名,返回值)。
步骤三,在struts.xml文件中注册LoginAction。
此配置文件要放在src目录下,实质就是成为classpath环境变量下的文件。
主要代码如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"""><struts><package name="myFirst" namespace="/" extends="struts-default"><action name="login" class="com.asm.LoginAction"><result name="loginSuccess">/success.jsp</result><result name="loginFailure">/failure.jsp</result></action></package></struts>说明:package后面会有详细说明。