第一章:结果类型
1.01 dispatcher:action转发到jsp
1.02 redirect:action重定向到jsp
1.03 chain:action转发到action
1.04 redirectAction :action重定向到action
1.05 stream:以二进制流方式返回浏览器
FromAction转发到ToAction【chain】
ToAction转发到success.jsp【dispatcher】
【index.jsp超链接FromAction转发ToAction转发ok.jsp,可共享request域对象】
LeftAction重定向到RightAction【redirectAction】
RightAction重定向到ko.jsp【redirect】
【index.jsp超链接LeftAction重定向RightAction重定向ko.jsp,可共享session域对象】
1.06 局部结果类型声明
1.07 全局结果类型声明
当局部和全局相同时,局部优先
第二章:异常处理
2.01 局部异常声明
2.02 全局异常声明
第三章:类型转换器【省-市-区=Address】
3.01 在默认情况下,struts2框架能将String和String[]类型转成基本类型或对应的包装类型及数组
3.02 但对于自定义的JavaBean类型,strust2框架没有内置的转换机制,它得调用程序员自定义的类型转换器才能正常工作
3.03 在src/xwork-convertion.properties类型转换属性文件,其中定义了什么JavaBean类型,由什么自定义转换器进行处理
3.04 类型转换器必须实现TypeConverter接口或继承StrutsTypeConverter类,推荐继承类
第四章:理解OGNL和ActionContext对象
4.01什么是OGNL
Object Graphic Navigator Language对象图导航语言,是开源Java项目
4.02 OGNL的作用
在xml文件中访问Action的属性值,底层调用的是getXxx()方法,例如:${filename}
从struts2中特有的6个对象中获取对应的属性值
操作集合,构造Map或List集合,获取集合的长度
常与struts2标签连用
4.03 理解ActionContext对象
struts2的唯一一个数据中心,即专用于存储数据的地方,叫ActionContext对象
ActionContext对象中有六个子对象,这六个子对象也能存数据
每个Action都有自已独立的一个ValueStack对象,不会冲突
第五章:掌握OGNL的4种符号用法
5.01 #::出现在JSP中
(A)访问ActionContext对象中的6个对象
用<s:property value=”#session.username”/>进行输出
(B)访问集合Map:#{'male':'男','female':'女'},构造radio和select标签
<s:radio name="gender1" list="#{'male':'男','female':'女'}" value="'male'"/>
<s:radio name="gender2" list="genderMap" value="'male'"/>
<s:select name="city1" list="#{'bj':'北京','sh':'上海','gz':'广州'}" value="'gz'"/>
<s:select name="city2" list="cityMap" value="'gz'"/>
(C)访问集合List<User(username,gender,age,salary)>
》集合的投影:userList.{username}
》集合的过滤:userList.{?#this.age>22}
userList.{^#this.age>22}
userList.{$#this.age>22}
?#表示所有对象
^#表示第一个对象
$#表示最后一个对象
this表示当前迭代的这个对象
》集合的投影和过滤:userList.{?#this.age>22}[0]
[0]表示符合条件的第一个对象
[1]表示符合条件的第二个对象
[N]表示符合条件的第N+1个对象
5.02 %{}:出现在JSP中
(A)<s:textfield label="用户名" name="username" value="赵君"/>
(B)<s:textfield label="用户名" name="username" value="%{username}"/>
与getXxx()的返回值有关
5.03 ${}:出现在XML中
(A)<param name="contentDisposition">attachment;filename=${filename}</param>
public String getFilename(){...}
访问Action的实例变量,底层执行getXxx()方法
(B)<param name="min">4000</param>
<param name="max">6000</param>
<message>旧:薪水必须是4000-6000</message>
<message>新:薪水必须是${min}-${max}</message>
5.04 {}:出现在JSP中
(A){}构造List或数组,在输出值的时候,可加#号,也可不加#号
#号出现的地方:
1) 查找非值栈的对象
2) 查找JavaBean对象的属性
3) 迭代List或Array时,#可选
第六章:ajax/json/jquery + struts2
1.01 导入struts2,jquery和struts2-json-plugin-2.3.1.1.jar包
struts2-json-plugin-2.3.1.1.jar包中有一个struts-plugin.xml文件
<package name="json-default" extends="struts-default">,我们的包只需要继承json-default就行了
<result-type name="json" class="org.apache.struts2.json.JSONResult"/>
又增加一种结果类型,它能将Action的所有实例变量,只要提供getXxx()方法,自动转换JSON格式的字符串,输出给浏览器
1.02 创建register.jsp页面
1.03 创建UserAction.java类
1.04 创建struts.xml配置文件
1.05 运行结果