zoukankan      html  css  js  c++  java
  • Struts2自定义日期转换器

    1.   日期格式转换器

    自定义日期格式转换器,可以动态调整日期格式,并更新到数据库。 

    /**
     * 保存日期格式的基础类。
     *
     * @author daichen
     *
     */
    public class DateConverter extends StrutsTypeConverter {
       
        /**
         * 内存中的日期格式
         */
        private String format;
       
        /**
         * 可以从数据库中加载日期格式
         */
        @PostConstruct
        public void loadFormat() {
        format = "yyyy-MM-dd";
        }
       
        @SuppressWarnings("rawtypes")
        @Override
        public Object convertFromString(Map context,String[] values, Class toClass) {
        // Pre-validate
            if (ArrayUtils.isEmpty(values) ||StringUtils.isEmpty(values[0])) {   
                return null;   
            }
           
            Date date = null;
            try {
                date = new SimpleDateFormat(format).parse(values[0]);     
            } catch (ParseException e) {     
                date = null;     
            }
            return date;
        }
     
        @SuppressWarnings("rawtypes")
        @Override    
        public String convertToString(Map context, Objecto) {
            if (o instanceof Date) {  
                return new SimpleDateFormat(format).format((Date) o);  
            }
            return StringUtils.EMPTY;   
    }
     
    /**
         * 更改日期格式(可以同时更新到数据库)
         * @param format
         */
        public void changeFormat(String format) {
            this.format = format;
        }
    }

    2.   全局配置文件

    新建xwork-conversion.properties,并与struts.xml放在一起。此配置文件中定义的转换器是全局的,也可以定义一个指定Action的转换器。

    java.util.Date=com.cdai.ssh.common.DateConverter

    3.   JSP页面

    <%@page
        import="com.cdai.ssh.user.vo.*"
        contentType="text/html;charset=utf-8"
    %>
    <%@taglib prefix="s"uri="/struts-tags"%>
     
    <html>
     
        <head>
            <title>Programmer inSY</title>
        </head>
     
        <body>
       
            <s:iterator value="userList">
                <li>
                    <s:property value="createdTime"/>              
                </li>
                <p>
                    <s:property value="id"/>
                </p>
            </s:iterator>
       
        </body>
     
    </html>
     

    4.   未解决问题

    4.1 配置文件位置

    struts.xml和xwork-conversion.properties要放在一起,但是不放在classes根位置就会报错。

    4.2 兼容Velocity

    Velocity不支持Struts2的自定义转换器。

  • 相关阅读:
    MySQL 4.1x 中文乱码效果
    linux内核中的“捏造化”
    Ubuntu开发者峰会在布拉格举行
    Decode 函数的用法
    Solaris 10拆卸jdk1.6及点窜成默许JDK
    教你编写高机能的mysql语法
    DirectShow9.0在vs2005中存在的问题解决
    Unicode,unicoidebig,Asci,UTF8文件read和write
    自已写了个GDI类,实现了相对路径载入任意类型的图片函数,并加一个在CRECT矩形上贴图的函数(5月25日写)
    两种解析EDIT控件上文本的方式
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157794.html
Copyright © 2011-2022 走看看