struts2自定义日期类型转换器
在java web表单中提交的数据难免会有日期类型,struts2支持的日期类型是yyyy-MM-dd,如果是其他格式,就需要自己进行转换。比如yy-MM-dd
要完成自己定义的转换需要完成。
主要的类是:StrutsTypeConverter,该类是抽象类,需要实现两个方法
1)public Object convertFromString(Map context, String[] values, Class toClass)
2)public String convertToString(Map context, Object o)
其中第二个转换成字符串的不常用。
步骤:
1 定义转换器类
2 进行配置,局部或全局
1、定义转换器类
定义一个 DateConverter 类继承自 StrutsTypeConverter,实现两个虚方法
@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
SimpleDateFormat[] sdfs = { new SimpleDateFormat("yyyyMMdd"),
new SimpleDateFormat("yyyy/MM/dd"),
new SimpleDateFormat("yyyy,MM,dd")};
//转换类型不是日期类型
if(toClass != Date.class){
return null;
}
//转换值是空或者长度为0
if(values == null || values.length==){
return null;
}
String strDate = values[];
Date birthday = null;
for(int i=;i<sdfs.length; i++){ try {
birthday = sdfs[i].parse(strDate);
return birthday;
} catch (ParseException e) {
continue;
} }
return birthday;
} @Override
public String convertToString(Map context, Object o) {
// TODO Auto-generated method stub
return null;
}
2 配置,分两种。一种是局部配置,另一种是全局配置
2.1)应用于特定Action类的类型转换器 在特定Action类的同一目录下创建一个名为ActionClassName-conversion.properties的属性文件
例如:我的Action类是public class AdminAction extends ActionSupport,对该类转换的属性文件名是:AdminAction-conversion.properties
配置格式:属性.属性 = 转换器类全名
例如:
Admin类
public class Admin {
private String aname;
private String apasswd;
private Date abirthday;
public Admin() {
// TODO Auto-generated constructor stub
}
public String getAname() {
return aname;
}
。。。。。
AdminAction类
public class AdminAction extends ActionSupport {
private Admin admin;
public Admin getAdmin() {
return admin;
}
public void setAdmin(Admin admin) {
this.admin = admin;
}
public String login(){
。。。
表单页面

配置内容:admin.abirthday=com.baidu.converter.DateConverter
2.2) 全局配置:在src目录下创建xwork-conversion.properties
配置格式:类型全名=转换器类全名
上面例子就是:java.util.Date=com.baidu.converter.DateConverter
struts2自定义日期类型转换器的更多相关文章
- Spring MVC__自定义日期类型转换器
WEB层采用Spring MVC框架,将查询到的数据传递给APP端或客户端,这没啥,但是坑的是实体类中有日期类型的属性,但是你必须提前格式化好之后返回给它们.说真的,以前真没这样做过,之前都是一口气查 ...
- SSM-SpringMVC-28:SpringMVC类型转换之自定义日期类型转换器
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 例子很简易,要明白的是思路,话不多说,开讲 上篇博客不是说springmvc默认的日期转换格式是yyyy/M ...
- struts_自定义日期类型转换器
1.问题:struts默认的日期类型是 xxxx-mm-dd,不能接收xxxx/mm//dd类型的日期 2.解决方案(继承DefaultTypeConverter,覆盖convertValue(Obj ...
- struts2自己定义类型转换器
1.1. struts2自己定义类型转换器 1) 自定类型转换类,继承DefaultTypeConverter类 package com.morris.ticket.conversio ...
- spring boot 配置全局日期类型转换器
1. 首先自定义一个类型转换器 import org.springframework.core.convert.converter.Converter; import org.springframew ...
- Struts2之自定义局部类型转换器、全局类型转换器
Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器 如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性用 ...
- struts2 基础2 类型转换器
struts2常用常量的定义与意义 每一次请求都会创建一个新的action,所以struts2的action是线程安全的 拆分struts 为应用指定多个struts配置文件 src 下为各应用配置的 ...
- SpringBoot配置自定义日期参数转换器
1.自定义参数转换器 自定义参数转换器必须实现Converter接口 /** * Created by IntelliJ IDEA. * * @Auther: ShaoHsiung * @Date: ...
- 自己定义struts2中action类型转换器
DateAction.java中代码例如以下: package com.itheima.action; import java.util.Date; public class DateAction { ...
随机推荐
- oracle commond
常用commond alter user scott account unlock; --解锁账号 alter user scott identified by new_pwd; --设置密码 lsn ...
- 原生js中slice()方法和splice()区别
slice()方法和splice()方法都是原生js中对数组操作的方法. slice(),返回一个新的数组,该方法可从已有的数组中返回选定的元素.例如:arrObject(start,end),sta ...
- MyBatis 的小细节问题
mybatis Result Maps collection already contains value 这是个小功能,我当时没有怎么在意,后来发到了测试环境的时候测试提出了bug,我才慌忙查看原因 ...
- poj 2229 DP
Sumsets Time Limit: 2000MS Memory Limit: 200000K Total Submissions: 15326 Accepted: 6088 Descrip ...
- selenium7种元素识别
我们以百度主页搜索框为例:= <input autocomplete="off" maxlength="255" value="" c ...
- wemall app商城系统Android之支付宝接口RSA函数
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享支付宝接口RSA函数,RSA签名.验签.解密等 ...
- nodejs学习第一天之模块
1.运行js文件 2.node 与 js 的区别 相同:数据类型,语法结构,对象 等基本一致 不同:在js中的顶层对象window 在node中没有在node中 顶层对象为global对象 其不对外 ...
- 2208: [Jsoi2010]连通数
2208: [Jsoi2010]连通数 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1371 Solved: 557[Submit][Status ...
- ST Lab1 junit test
代码地址: https://github.com/newff/st-lab1 Tasks: Install Junit(4.12), Hamcrest(1.3) with Eclipse Insta ...
- Node软件的安装
1.官网网址:https://nodejs.org/en/ 左边被推荐,右边最新 下载完成一键下一步直接安装,当然,如果你想修改安装目录的话当然没问题,注意:不要有英文目录 2.Window+r打开命 ...