struts2教程(4)--类型转换
Struts2类型转换
1、 struts2内部提供大量类型转换器,用来完成数据类型转换问题
boolean 和 Boolean
char和 Character
int 和 Integer
long 和 Long
float 和 Float
double 和 Double
Date 可以接收 yyyy-MM-dd格式字符串
数组 可以将多个同名参数,转换到数组中
集合 支持将数据保存到 List或者 Map集合
案例: 输入合法年龄和生日可以自动转换
当输入abc 转换为 int类型age时
Caused by: java.lang.NoSuchMethodException: cn.itcast.struts2.demo3.CustomerAction.setAge([Ljava.lang.String;
分析: 输入20,转换 int类型20 --- setAge(int)
输入abc,转换int出错 ---- setAge(String) -----报错方法不存在异常
自定义类型转换器
1) 自定义类型转换器
第一种 实现TypeConverter接口
convertValue(java.util.Map<java.lang.String,java.lang.Object> context, java.lang.Object target, java.lang.reflect.Member member, java.lang.String propertyName, java.lang.Object value, java.lang.Class toType)
第二种 继承 DefaultTypeConverter
convertValue(java.util.Map<java.lang.String,java.lang.Object> context, java.lang.Object value, java.lang.Class toType)
第三种 继承 StrutsTypeConverter
convertFromString(java.util.Map context, java.lang.String[] values, java.lang.Class toClass) --- 请求封装convertToString(java.util.Map context, java.lang.Object o) --- 数据回显
类型转换器 一直都是双向转换
页面提交请求参数,封装到model --- 需要转换
model数据 需要在页面 回显 ----需要转换
2) 以 1990/10/10为例,自定义日期转换器,完成转换
public Object convertValue(Map<String, Object> context, Object value,Class toType) {// 根据toType判断 是请求封装 还是 数据回显DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");if (toType == Date.class) {// 请求参数封装 (value是字符串)String[] params = (String[]) value;String strVal = params[0]; // 转换为 日期类型try {return dateFormat.parse(strVal);} catch (ParseException e) {e.printStackTrace();}} else {// 回显(value是 Date)Date date = (Date) value;return dateFormat.format(date);}return null;}
3) 注册类型转换器
局部注册 :只对当前Action有效 (针对属性)
全局注册 :针对所有Action的日期类型有效 (针对类型 )
局部注册 :在Action类所在包 创建 Action类名-conversion.properties ,格式 : 属性名称=类型转换器的全类名
全局注册 :在src下创建 xwork-conversion.properties,格式 : 待转换的类型=类型转换器的全类名
类型转换错误处理
通过分析拦截器作用,得知当类型转换出错时,自动跳转input视图 ,在input视图页面中<s:fieldError/> 显示错误信息
在Action所在包中,创建ActionName.properties,在局部资源文件中配置提示信息 :invalid.fieldvalue.属性名=错误信息
struts2教程(4)--类型转换相关推荐
- struts2教程_Struts 2教程– Struts2教程
struts2教程 Welcome to Struts 2 Tutorial index post. Struts 2 is one of the mostly used Java Web Appli ...
- java js 转换_[Java教程]javascript 类型转换。
[Java教程]javascript 类型转换. 0 2016-10-11 18:00:06 目录: 1 : 伪对象 2 : 转换为字符串 3 : 数字转字符串 4 : 转换为数字 5 : 转换为Bo ...
- Struts2中的类型转换
1. Struts2中的类型转换 我们知道通过HTTP提交到后台的数据,都是字符串的形式,而我们需要的数据类型当然不只字符串类型一种.所以,我们需要类型转换! 在Struts2中,类型转换的概 ...
- Struts2教程3:struts.xml常用配置解析
在本文中将详细讲述struts.xml文件的常用配置及注意事项. 1. 使用<include>标签重用配置文件 在Struts2中提供了一个默认的struts.xml文件,但 ...
- Struts2教程1:第一个Struts2程序
在本系列教程中我们将学习到Struts2的各种技术.在本教程中使用的工具和程序库的版本如下: 开发工具:MyEclipse6 Web服务器:Tomcat6 Struts版本:Struts2.0.11. ...
- struts2教程(7)--拦截器
Struts2拦截器 一.拦截器介绍 拦截器 的使用 ,源自Spring AOP(面向切面编程)思想 拦截器 采用 责任链 模式 在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链 ...
- struts2教程(5)--请求参数校验
一.请求参数校验介绍 校验的分类 :客户端数据校验 和服务器端数据校验 客户端数据校验 ,通过JavaScript完成校验 (改善用户体验,使用户减少出错 ) 服务器数据校验 ,使用框架内置校验功能( ...
- struts2教程--快速入门
Struts2框架介绍 1.三大框架 : 是企业主流 JavaEE开发的一套架构 Struts2 + Spring + Hibernate 2. 什么是框架?为什么要学框架 ? 框架 是 实现部分功能 ...
- struts2之token,类型转换和数据校验
文章目录 1 Token防重 1.1 token内部原理 1.2 实现步骤 1.2.1 在页面中添加标签 1.2.2 配置strtus.xml配置 2 类型转换器 2.1 Struts2类型转换 2. ...
最新文章
- python中map函数运行原理_Python中map函数的解释和可视化
- linux下开发python爬虫_linux入门教程—开发常用命令
- 视觉位姿测量精度的影响因素分析(Camera Pose Estimation)
- rust怎么用items刷东西_rust服主怎么刷东西 | 手游网游页游攻略大全
- 变量提升、作用域this实战(真题:看代码输出)
- java代码块是什么_Java代码块
- oracle配置ipv6_配置 IPv6 接口
- Android 4.1初识--7月13号
- paip.系统无法在消息文件中为 Application 找到消息号为 0x2350 的消息文本。服务器存储空间不足,无法处理此命令
- selenium+java自动化测试环境搭建mac
- 备战数学建模48-数学规划模型终结篇(全)(攻坚战13)
- C#创建Windows窗体应用程序实例8【通用对话框】
- 网络天空、诺维格、高波、爱虫病毒专杀工具 040421 下载
- cad灯具图标_灯具在CAD中怎么表示出来 都代表哪种灯 谢谢
- underscore.js 964 --- 1103行
- Win11无线网络适配器显示感叹号怎么办
- ESXi8.0中NVME硬盘不识别解决方法1,设置直通
- windows7自带摄像头拍照摄像软件
- 雅思听力常见人名及地名(常考,必备)
- 【转】PHP乱码问题,UTF-8(乱码)