• 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

  • 相关阅读:
    asp.net 文件下载
    net 数据库连接详解 相当经典啊
    取值:webconfig中的key
    通过监听的端口查找本机进程和服务思路
    以系统服务运行某个程序
    测底根除Windows流氓软件开机自动运行
    使用Wireshark在主机上抓取远程主机的数据流量
    记录Windows远程登录日志
    证书不匹配发出告警的解决方法
    WPS office云同步图标彻底删除方法
  • 原文地址:https://www.cnblogs.com/zhaopengcheng/p/6701402.html
Copyright © 2020-2023  润新知