day28_struts2Result
来源:互联网 发布:java destroy 编辑:程序博客网 时间:2024/05/18 02:32
一、结果视图
1、局部和全局结果视图
a、局部视图:
b、全局视图:
多个动作对应同一个视图
2、result元素的配置:
属性:
name:逻辑视图名称。它对应的是动作方法的返回值。默认值:success。
type:到达目标的形式。默认值:dispatcher。转发。
3、Struts2提供的结果类型(result type属性)
在struts-default.xml中有定义
chain:用户转发到另外一个动作。
转发到不同名称空间中的另外一个动作
dispatcher:用于转发到另外一个JSP页面。
freemarker:用于转发到另外一个freemarker模板。(页面静态化)velocity:用于转发到另外一个velocity模板。httpheader:用于输出http协议的消息头。xslt:XML有关的样式redirect:用于重定向到另外一个JSP页面。redirectAction:用于重定向到另外一个动作。stream:用于文件下载(日后再讲。文件上传和下载)plainText:以纯文本的形式展现页面。输出源码。
4、自定义结果视图
随机验证码图片
1、struts2的执行图
2、自定义结果视图步骤
a、编写一个类,直接或间接实现com.opensymphony.xwork2.Result接口。一般继承org.apache.struts2.dispatcher.StrutsResultSupport类
b、声明结果类型,然后才能使用
c、使用
二、封装请求参数(特别重要)
2.1 动态参数注入:(请求参数,用户输入的)
1、方式一:
用Action动作类作为模型对象。
2、方式二:动作类和模型分开(推荐)
模型:
动作:
配置文件:
表单页面:
3、方式三:(面试题,推荐)动作和模型分开
模型驱动:ModelDriven
模型:
动作:
配置文件:
JSP页面:
原因:与Struts2的值栈有关
该功能是由一个叫做modelDriven的拦截器完成的。
2.2静态参数注入
2.3动态参数和静态参数注入功能实现(知道)
是由两个拦截器来完成。
静态参数注入:staticParams
动态参数注入:params
三、学生的注册案例
四、类型转换(学,开发中几乎不用管)
String—–>java.util.Date:输入
java.util.Date——>String:输出:查询显示,输出错误回显
Struts2会按照本地默认(与操作系统的区域有关yyyy-MM-dd)格式自动转换
1、目标:
实现MM/dd/yyyy<——>java.util.Date互相转换
a、编写一个类,继承StrutsTypeConverter
b、注册类型转换器
局部类型转换器:只为当前动作使用
2、动作类作为模型:
3、动作类和模型分开:(经常用)
在模型所在的包中,建立以下配置文件
全局类型转换器:所有动作使用
在构建路径顶端,建立固定名称为xwork-conversion.properties的配置文件
4、类型转换失败后事
a、转换失败,会自动转到一个name=input的逻辑视图,一般指向输入的那个页面,目的回显(建议使用struts2的表单标签)b、错误消息提示中文版本
前提:动作类继承ActionSupport才能使用。
该功能是由一个叫做conversionError拦截器负责处理的。