liuboyu1991 2009-11-07 18:41
浏览 262
已采纳

struts1中的时间类型转换器怎么弄

各位前辈好:

 

           我是一学会 , 现在正在做一个小项目,遇到了一些小问题 麻烦各位了。。。

 

 

 

          我用的是struts1.2和hibernate框架,在前台用户输入了一个时间,格式为 “yyyy-MM-dd”的,我要把这个字段插入数据库(times字段),数据库中的times字段是datetime类型的,而我现在在后台获取的是个string类型的,插入数据库时,他说  字符类型向datetime类型转化失败  roolback了  失败~~

 

          听老师说可以写个时间转化器,那要怎么写呢?如何使用呢?

希望各位指点

  • 写回答

3条回答 默认 最新

  • star00123 2009-11-07 22:55
    关注

    时间转换器的类可以这样写,但是便于在项目中易于维护,你最好将他放在一个Servlet中,然后将Servlet配置在web.xml中,使得项目在启动后可以对任何页面的时间进行转换。
    时间转换器:
    [code="java"]
    package com.xiaosu;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;

    import org.apache.commons.beanutils.Converter;

    public class UtilDateConverter implements Converter {

    private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    
    public Object convert(Class type, Object value) {
        if (value == null) {
            return value;
        }
        if (value instanceof Date) {
            return value;
        }
        if (value instanceof String) {
            try {
                return format.parse((String) value);
            } catch (ParseException ignore) {
            }
        }
        return null;
    }
    

    }[/code]
    Servlet类:
    [code="java"]
    package com.xiaosu;
    import java.util.Date;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;

    import org.apache.commons.beanutils.ConvertUtils;

    public class InitServlet extends HttpServlet {
    @Override
    public void init() throws ServletException {
    //注册日期类型的转换器
    ConvertUtils.register(new UtilDateConverter(), Date.class);
    }
    }[/code]
    web.xml配置:

    initServlet
    com.xiaosu.InitServlet
    3

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器