SSM之SpringMVC的参数绑定之日期转换

日期格式转换

  • springMVC默认不支持页面上的日期字符串到后台的Date的转换
  • 有两种转换方式

第一种使用注解

Person

 private int id;
    private String username;
    private String password;
    private String city;
    private Birthday birthday;
    @DateTimeFormat(pattern ="yyyy-MM-dd")
    private Date birthday2;

ParameterController

@RequestMapping("add.action")
    public ModelAndView test05(Person person){
        System.out.println(person.getUsername());
        System.out.println(person.getPassword());
        System.out.println(person.getCity());
        System.out.println(person.getBirthday().getYear());
        System.out.println(person.getBirthday().getMonth());
        System.out.println(person.getBirthday().getDay());
        System.out.println(person.getBirthday2());
        ModelAndView mv = new ModelAndView();
        mv.setViewName("main");
        return mv;
    }

addPersonUI.jsp

出生日期:<input type="date" name="birthday2"><br/>

二自己编写转换类,配置到springMVC

编写自定义转换器实现Converter重写方法,进行转换

//1:将页面上提交的日期字符串,转成Date对象
public class DateTimeFormatConvert implements Converter<String, Date> {
    public Date convert(String s) {
        System.out.println("convert "+s);
        //2:转换器
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = null;
        try {
            date = sdf.parse(s);//2020-10-14
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }
}

springmvc.xml中配置转换工厂,将转换器设置到converters集合中

<bean id="formattingConversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean id="dateTimeFormatConverter" class="com.wzx.util.DateTimeFormatConvert"></bean>
            </set>
        </property>
    </bean>

将转换工厂对象挂载到处理器适配器上(挂载到注解驱动)

<mvc:annotation-driven conversion-service="formattingConversionService"/>

日期格式化标签

  • 导入标签
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  • 调用日期格式化标签
<fmt:formatDate value="${item.birthday2}" pattern="yyyy年MM月dd日"/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值