`
xitongyunwei
  • 浏览: 922008 次
文章分类
社区版块
存档分类
最新评论

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的自定义转换器。

分享到:
评论

相关推荐

    struts2枚举值、日期值转换示例

    struts2枚举值转换示例。 包括一个自定义枚举值转换器, 一个自定义日期值转换器。 需要用struts2处理枚举值的朋友可以试一下。 包括所有需要的jar包。

    Struts2 in action中文版

    5.4.3 配置框架使用自定义转换器 103 5.5 小结 106 第三部分 构建视图——标签和结果 第6章 构建视图——标签 108 6.1 入门 108 6.1.1 ActionContext和OGNL 109 6.1.2 虚拟对象ValueStack 111 6.2 Struts 2标签概要...

    自己写的struts2类型转换器

    服务器可以接收到的来自用户的数据只能是字符串或者是字符串数组,而在服务器上的对象中 ,这些数据往往有多种不同的类型,如日期(Date) 整数(int) 浮点数... 要实现 上述的转换 ,Struts2中 提供了 converter。

    BBS-struts2课程设计-南工考研论坛

    (3) 用户注册,需要通过Struts2字段校验判断用户注册页面中的用户名、密码、年龄、出生日期、邮箱等是否符合校验规则,并对自定义校验器要求密码必须包含数字、字母以及两个以上的特殊字符(!@#$%^&*)。 (4) 对用户...

    图书管理系统-struts2

    (2) 用户注册,需要通过Struts2字段校验判断用户注册页面中的用户名、密码、年龄、出生日期、邮箱等是否符合校验规则,并对自定义校验器要求密码必须包含数字、字母以及两个以上的特殊字符(!@#$%^&*)。 (3) 对用户...

    myeclipse mysql struts2 公告管理系统

    (4) 用户注册,需要通过Struts2字段校验判断用户注册页面中的用户名、密码、年龄、出生日期、邮箱等是否符合校验规则,并对自定义校验器要求密码必须包含数字、字母以及两个以上的特殊字符(!@#$%^&*)。 (5) 对用户...

    java Struts2+hibernate+Spring整合的通讯录

    (3) 用户注册,需要通过Struts2字段校验判断用户注册页面中的用户名、密码、年龄、出生日期、邮箱等是否符合校验规则。设置用户名,密码的非空判断和最小及最大长度,两次密码输入是否一致,设置年龄范围,设置出生...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    7.3.1 对自定义的类型转换器进行配置 126 7.3.2 自定义的类型转换器示例 127 7.4 扩展StrutsTypeConverter类 130 7.5 与复杂对象配合使用 134 7.6 与Collection配合使用 137 7.7 与Map配合使用 142 7.8 小结 145 第...

    从J2SE到J2EE知识点介绍

    1. struts2的拦截器定义以及使用 153 2. struts标签 160 3. Struts 2 标签库说明及使用 160 4. set 描述 169 5. text 描述 170 6. property 描述 170 7. Struts的异常处理 171 8. Struts的上传与下载 178 五、 ...

    Java学习笔记-个人整理的

    {5.1.1}各类时间日期转换}{94}{subsection.5.1.1} {5.1.2}时间的输入与输出}{97}{subsection.5.1.2} {5.2}数字的输入输出}{97}{section.5.2} {5.2.1}将浮点数四舍五入到指定精度}{98}{subsection.5.2.1} {6}...

    freemarker总结

    6、 用户自定义FTL指令:宏和变换器 7、 节点 节点变量表示为树型结构中的一个节点,通常在XML处理中使用。 在模板里对sequences和hashes初始化 sequences 1. [“you”,”me”,”he”] 2. 1..100 3. [ {“Akey...

    java开源包2

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    JAVA上百实例源码以及开源项目

    Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接与浏览,Java源码下载 1个目标文件 摘要:Java源码,网络相关,HTTP  Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件...

    JAVA上百实例源码以及开源项目源代码

    Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接与浏览,Java源码下载 1个目标文件 摘要:Java源码,网络相关,HTTP  Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件...

    java面试题

    答:Struts1和Struts2是两个完全不同的框架,Struts1以ActionServlet作为核心控制器,由ActionServlet负责拦截用户的所有请求。Struts2以核心控制器FilterDispatcher为基础,包含了框架内部的控制流程和处理机制。 ...

Global site tag (gtag.js) - Google Analytics