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 自定义类型转换器的更多相关文章

  1. Struts2框架的自定义类型转换器

    前言:对于java的基本数据类型及一些系统类(如Date类.集合类),Struts2提供了内置类型转换功能,但是也有一定的限制.所以就演示出自定义类型转换器 一.应用于局部类型转换器 eg.用户登录出 ...

  2. Struts2之自定义类型转换器

    Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器 如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性用d ...

  3. [原创]java WEB学习笔记67:Struts2 学习之路-- 类型转换概述, 类型转换错误修改,如何自定义类型转换器

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. 自定义类型转换器converter

    作用:目前将日期转换成string,将string转换成我想要的类型   0509课件里讲 一.数据类型转换在web应用程序中,数据存在两个方向上的转换:1.当提交表单时  表单数据以字符串的形式提交 ...

  5. Ⅵ.spring的点点滴滴--自定义类型转换器

    承接上文 自定义类型转换器 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class CustomeConverter : TypeConverter{ ...

  6. struts2自定义类型转换器

    首先,何为struts2的类型转换器? 类型转换器的作用是将请求中的字符串或字符串数组参数与action中的对象进行相互转换. 一.大部分时候,使用struts2提供的类型转换器以及OGNL类型转换机 ...

  7. Struts(二十):自定义类型转换器

    如何自定义类型转换器: 1)为什么需要自定义类型转化器?strtuts2不能自动完成字符串到所有的类型: 2) 如何定义类型转化器? 步骤一:创建自定义类型转化器的类,并继承org.apache.st ...

  8. 《SpringMVC从入门到放肆》十二、SpringMVC自定义类型转换器

    之前的教程,我们都已经学会了如何使用Spring MVC来进行开发,掌握了基本的开发方法,返回不同类型的结果也有了一定的了解,包括返回ModelAndView.返回List.Map等等,这里就包含了传 ...

  9. struts2基础---->自定义类型转换器

    这一章,我们开始struts2中自定义类型转换器的学习. 自定义类型转换器

随机推荐

  1. Python之路【第九篇】堡垒机基础&数据库操作

    复习paramiko模块 Python的paramiko模块,是基于SSH用于连接远程服务器并执行相关操作. SSHClient #!/usr/bin/env python #-*- coding:u ...

  2. java中InvocationHandler 用于实现代理。

    以下的内容部分参考了网络上的内容,在此对原作者表示感谢! Java中动态代理的实现,关键就是这两个东西:Proxy.InvocationHandler,下面从InvocationHandler接口中的 ...

  3. WKWebView使用及注意点

    iOS8之后,苹果推出了WebKit这个框架,用来替换原有的UIWebView,新的控件优点多多,不一一叙述.由于一直在适配iOS7,就没有去替换,现在仍掉了iOS7,以为很简单的就替换过来了,然而在 ...

  4. JavaScript基础整理(2)

    接下来的重点是函数.我们知道函数是特殊的对象. 函数作用域和声明提前.JavaScript中没有块级作用域,只有函数作用域:变量在声明它们的函数体以及这个函数体嵌套的任意 函数体内都要定义. func ...

  5. Linux后台执行脚本文件,nohup

    看运维人员执行nohup命令后,把程序放在后台执行,很高大上,就研究了一下,这个命令. nohup命令及其输出文件 nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么 ...

  6. rational rose 顺序图的消息加数字

    主菜单——〉“Tools”——〉“Options”,在弹出的窗口中选择“Diagram”标签-->display-->sequence numbering

  7. codevs5164 逆波兰表达式

    题目描述 Description 逆波兰表达式是一种把运算符前置的算术表达式(又叫前缀表达式),例如普通的表达式2 + 3的逆波兰表示法为+ 2 3.逆波兰表达式的优点是运算符之间不必有优先级关系,也 ...

  8. 分分钟教会大家第一个Spring入门案例

    1.下载Spring jar包,并添加到项目中. 官网地址http:springsource.org 2.在项目中新建一个类      package cn.test; public class He ...

  9. 分布式系统一致性算法 raft学习

    在学习MongoDB的过程中,有博客中写道其搭建复制集时使用了raft算法,经过简单地的搜索资料后,发现了一个特别好的网站资料.这个网站用动画的形式,非常清楚和详尽的解释了整个raft算法的精要和过程 ...

  10. [Effective JavaScript 笔记]全书总结

    这本书中就像它前言中说的那样,这本书不是给初学者的.需要一定的基础,而且有一定的编码实践,才能很好的理解书里讲到的内容.学习一门编程语言,需要熟悉它的语法.形式和结构,这样才会编写合法的.符合语义的. ...