sruts2 自定义类型转换器
1.1.1 Struts2中自定义类型转换器:(了解)
类型转换的过程是双向的过程:
JSP---->Action参数提交:String---Date.
Action---->JSP数据回显:Date---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)
* 2.继承DefaultTypeConverter
* convertValue(java.util.Map<java.lang.String,java.lang.Object> context, java.lang.Object value, java.lang.Class toType)
* 3.继承StrutsTypeConverter
* convertToString(java.util.Map context, java.lang.Object o) ---数据回显的类型转换
* convertFromString(java.util.Map context, java.lang.String[] values, java.lang.Class toClass)---提交参数类型转换
将Struts2中Date的类型的格式更改为yyyy/MM/dd
1.自定义一个类型转换器:
public class MyDateConverter extends DefaultTypeConverter{
@Override
// 重写的类型转换的方法
/**
* 三个参数:
* * context:Map集合.
* * value:转换前的类型.
* * toType:转换后的类型.
*/
public Object convertValue(Map context, Object value, Class toType) {
// 类型转换是一个双向的过程:
// 封装数据的时候需要类型转换
// 数据回显到JSP的时候需要类型转换.
// 根据转换后的类型去判断:
DateFormat format = new SimpleDateFormat("yyyy/MM/dd");
if(toType == Date.class){
// 数据封装的类型转换 JSP---》Action String->Date
String[] arrs = (String[]) value;
Date date = null;
try {
date = format.parse(arrs[0]);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}else{
// 数据回显的类型转换 Action---》JSP Date->String
Date date = (Date) value;
String s = format.format(date);
return s;
}
}
}
2.注册类型转换器:
* 全局注册:针对所有的Action中的日期类型.
* 在src下创建一个xwork-conversion.properties
* java.util.Date=自定义类转换器的全路径.
* 局部注册:针对一个Action的属性.
* 1.在Action所在包下创建一个与Action类名相同-conversion.properties
* CustomerAction-conversion.properties 文件中 birthday=自定义类转换器的全路径.
***** 针对在Action中提供set方法的形式.
public class CustomerAction{
private Date birthday;
public void setBirthday(Date birthday){
This.birthday =birthday;
}
}
* 2.使用ModelDriven的方式接收:
* 在实体类所在包创建与类同名-conversion.properties
* Customer-conversion.properties
* birthday=自定义类转换器的全路径.
sruts2 自定义类型转换器的更多相关文章
- Struts2框架的自定义类型转换器
前言:对于java的基本数据类型及一些系统类(如Date类.集合类),Struts2提供了内置类型转换功能,但是也有一定的限制.所以就演示出自定义类型转换器 一.应用于局部类型转换器 eg.用户登录出 ...
- Struts2之自定义类型转换器
Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器 如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性用d ...
- [原创]java WEB学习笔记67:Struts2 学习之路-- 类型转换概述, 类型转换错误修改,如何自定义类型转换器
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 自定义类型转换器converter
作用:目前将日期转换成string,将string转换成我想要的类型 0509课件里讲 一.数据类型转换在web应用程序中,数据存在两个方向上的转换:1.当提交表单时 表单数据以字符串的形式提交 ...
- Ⅵ.spring的点点滴滴--自定义类型转换器
承接上文 自定义类型转换器 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class CustomeConverter : TypeConverter{ ...
- struts2自定义类型转换器
首先,何为struts2的类型转换器? 类型转换器的作用是将请求中的字符串或字符串数组参数与action中的对象进行相互转换. 一.大部分时候,使用struts2提供的类型转换器以及OGNL类型转换机 ...
- Struts(二十):自定义类型转换器
如何自定义类型转换器: 1)为什么需要自定义类型转化器?strtuts2不能自动完成字符串到所有的类型: 2) 如何定义类型转化器? 步骤一:创建自定义类型转化器的类,并继承org.apache.st ...
- 《SpringMVC从入门到放肆》十二、SpringMVC自定义类型转换器
之前的教程,我们都已经学会了如何使用Spring MVC来进行开发,掌握了基本的开发方法,返回不同类型的结果也有了一定的了解,包括返回ModelAndView.返回List.Map等等,这里就包含了传 ...
- struts2基础---->自定义类型转换器
这一章,我们开始struts2中自定义类型转换器的学习. 自定义类型转换器
随机推荐
- 合并两个结构完全相同的DataTable
两个结构一模一样的DataTable如何合并? 例子:使用Winform进行演示,表2的数据为固定的,表1的数据可以动态添加,通过合并按钮合并表1和表2的数据到表3 1.规定公共的DataTable结 ...
- [MongoDB]对数组操作
摘要 在实际开发中遇到更新某个document中的数组的值,这里做一下记录. 这里使用的驱动为 using MongoDB.Bson;using MongoDB.Driver; 相关文章 [Mongo ...
- 配置red hat的ip 自动地址
三个文件: 需要配置的内容包括: nameserver dns, hostname和gateway, ip地址等等. /etc/resolv.conf中配置dns, 这个也可以在 sysconfig/ ...
- linux命令--dig
dig,和nslookup作用有些类似,都是DNS查询工具,但是却比nslookup强大 dig,其实是一个缩写,即Domain Information Groper. [我想用google-DNS来 ...
- PostgreSQL中的时间操作总结
取当前日期的函数: (1) 取当前时间:select now() (2) 取当前时间的日期: select current_date (3) 取当前具体时间(不含日 ...
- Backbone事件模块源码分析
事件模块Backbone.Events在Backbone中占有十分重要的位置,其他模块Model,Collection,View所有事件模块都依赖它.通过继承Events的方法来实现事件的管理,可以说 ...
- mobile touch事件
touch.js 众所周知,mobile与pc 前端开发的不同中,有一点就是事件的不同,mobile上有touchstart,touchmove,touchend等,而pc上用最多的应该还是我们的cl ...
- Hadoop第3周练习--Hadoop2.X编译安装和实验
作业题目 位系统下进行本地编译的安装方式 选2 (1) 能否给web监控界面加上安全机制,怎样实现?抓图过程 (2)模拟namenode崩溃,例如将name目录的内容全部删除,然后通过secondar ...
- Reflect(欧拉函数)
Reflect Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- linux查找某一进程并杀死
1. 查找redis进程 ps -ef|grep redis-server 2.打印第二个参数,因为上面第二列是进程号 3.这两个进程号有一个是grep进程号,所以要去掉,反选 grep ps ...