day28_struts2Result

一、结果视图

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值