spring mvc使用过程中关于spring:bind和绑定java.util.Date遇到的问题

model类是这样的

public calss User{

       private CorpAddr corpAddr;

       private String name;

}

CorpAddr类是这样的

public class CorpAddr{

     private Date birthday; 

}

jsp form表单映射

<spring:bind path="user.name">
    <input type="text" name="name" />
</spring:bind>

这样绑定user.name属性是没问题的,但用同样的方式绑定user.corpAddr.birthday却绑定不上

<spring:bind path="user.corpAddr.birthday">
    <input type="text" name="birthday" />
</spring:bind>

这样绑定不上user.corpAddr.birthday属性,要使用下面的方式

<spring:bind path="user.corpAddr.birthday">
    <input type="text" name="<c:out value='${status.expression}'/>" value="<c:out value='${status.value'/>" />
</spring:bind>

这时候,提交到后台,却报了个异常,即spring mvc 表单映射日期型字段的问题

类似这样的异常

Failed to convert property value of type [java.lang.String] to required type [java.util.Date] for property 'expert.birthdate'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type [java.util.Date] for property 'birthdate': no matching editors or conversion strategy found 

解决的方法是:

解决方法
1.控制器继承 extends SimpleFormController
2.重写initBinder方法

 @InitBinder
  protected void initBinder(HttpServletRequest request,
            ServletRequestDataBinder binder) throws Exception {
        DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        CustomDateEditor dateEditor = new CustomDateEditor(fmt, true);
        binder.registerCustomEditor(Date.class, dateEditor);
        super.initBinder(request, binder);
    }

注意日期格式串与页面模式一致

好了,希望对你有用!

转载于:https://www.cnblogs.com/dingchenghong/archive/2012/08/16/2641715.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值