zoukankan      html  css  js  c++  java
  • 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==0){
                return null;
            }
            String strDate = values[0];
            Date birthday = null;
            for(int i=0;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

  • 相关阅读:
    第八章:数组
    第六章:循环结构(二)
    第五章:循环结构(一)
    第二章:变量 数据类型和运算符
    第三章:选择结构(一)
    第四章:选择结构(二)
    第一章:初识java
    第6章 数据筛选和排序
    第四章 实现Windows程序的数据更新
    第五章 实现Windows程序的数据绑定
  • 原文地址:https://www.cnblogs.com/zhaopengcheng/p/6701402.html
Copyright © 2011-2022 走看看