0
点赞
收藏
分享

微信扫一扫

Spring MVC自定义类型转换器!!!

简单聊育儿 2024-01-10 阅读 9

使用场景

在index.jsp里面添加日期类型

 <form action="account/saveAccount" method="post">
账户名称:<input type="text" name="name"><br/>
账户金额:<input type="text" name="money"><br/>
账户省份:<input type="text" name="address.provinceName"><br/>
账户城市:<input type="text" name="address.cityName"><br/>
开户日期:<input type="text" name="date"><br/>
<input type="submit" value="保存">
</form>

在pojo里面添加日期类型

public class Account implements Serializable {
private Integer id;
private String name;
private Float money;
private Address address;
//添加日期类型
private Date date;
//省略get set toString方法
}

测试

原因:我们前台传递的是字符串类型的参数,但是后台使用的是Date类型接收的。我们期望springmvc可以帮我们做数据类型的自动转换,显然没有做,所以我们需要自己自定义类型转换器。

解决方案:

定义一个类,实现Converter接口

public class DateConverter implements Converter<String, Date> {
@Override
public Date convert(String source) {
try {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
return format.parse(source);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}

在 springmvc.xml配置文件中配置类型转换器

<!--开启springmvc注解支持-->
<mvc:annotation-driven conversion-service="cs"></mvc:annotation-driven>
<!-- 配置类型转换器工厂 -->
<bean id="cs"
class="org.springframework.context.support.ConversionServiceFactoryBean">

<!-- 给工厂注入一个新的类型转换器 -->
<property name="converters">
<set>
<!-- 配置自定义类型转换器 -->
<bean class="com.by.converter.DateConverter"></bean>
</set>
</property>
</bean>

 

举报

相关推荐

0 条评论