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拦截器负责处理的。

五、输入验证

0 0
原创粉丝点击