admin管理员组文章数量:1538095
SpringMVC04_自定义数据类型转换器
- addDate.jsp(这里前端会提交一个yyyy-MM-dd格式的字符串)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="/converter/date" method="post">
请输入日期:<input type="text" name="date"/>(yyyy-MM-dd)
<br>
<input type="submit" value="提交"/>
</form>
</body>
</html>
- ConverterHandler (从前端获取的是String类型的字符串,但需要的参数是Date类型的数据)
package com.blu.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
@RestController
@RequestMapping("/converter")
public class ConverterHandler {
@RequestMapping("/date")
public String Date(Date date){
return date.toString();
}
}
- 启动后输入http://localhost:8080/addDate.jsp进入addDate.jsp
输入2020-09-30后提交出现500错误(Failed to convert value of type ‘java.lang.String’ to required type ‘java.util.Date’):
- 添加DateConverter类并实现Converter接口:
package com.blu.converter;
import org.springframework.core.convert.converter.Converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateConverter implements Converter<String,Date> {
private String pattern;
public DateConverter(String pattern){
this.pattern = pattern;
}
@Override
public Date convert(String s) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(this.pattern);
Date date = null;
try {
date = simpleDateFormat.parse(s);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
}
- 在配置文件中配置自定义的转换器并注册
<!-- 配置自定义转换器 -->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="com.blu.converter.DateConverter">
<constructor-arg type="java.lang.String" value="yyyy-MM-dd"></constructor-arg>
</bean>
</list>
</property>
</bean>
<!-- 注册自定义转换器的bean -->
<mvc:annotation-driven conversion-service="conversionService">
</mvc:annotation-driven>
- 重新运行,测试成功:
版权声明:本文标题:SpringMVC04_自定义数据类型转换器 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1726968554a1092496.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论