1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > SpringMVC-自定义类型转换器

SpringMVC-自定义类型转换器

时间:2022-03-02 15:34:49

相关推荐

SpringMVC-自定义类型转换器

SpringMVC-自定义类型转换器

1.为什么要自定义类型转换器?2.如何定义自定义类型转换器

1.为什么要自定义类型转换器?

首先要知道我们在页面中提交的数据都是字符串类型,比如年龄,用户名,密码等;

在springMVC中,为了接受前端的参数,给我们提供了一种简便方式,就是可以用javaBean对象来接收参数

前提是javaBean中的属性名要和页面中的提交的名字相同

<input type="text" name="username"><input type="text" name="age">

那么在javaBean中对应的属性名就必须是username;

注意这里的属性其实是对应的成员变量的set方法名,去掉set,然后首字母小写

即属性==setUsename–>Username–>username

class User{private String username;private Integer age;public void setUsername(String username){this.username= username}......}

之后就会把页面传入的参数通过set方法赋值给成员变量

不过,这里成员变量age是Integer类型的?

然而传入的是字符串?是怎样赋值的呢?不会报错吗?

其实这里不用担心,springMVC已经给我们把传入的数据进转换(通过默认的转换器)为对应的类型;

不过当我们的类型是Date日期类型时,SpringMVC就不太友好了;他规定了我们传入的日期类型的格式,比如写/11/1可以成功,但是我们写-11-1就会报错;

因此针对这一点,我们需要自己写一个转换器来解决这一问题!!

2.如何定义自定义类型转换器

1.首先我们需要自定义一个类实现Converter<S,T>接口

(注意不要导错包!!)

public class MyConverter implements Converter<String, Date>{/** s:指的是传进来的值* */@Overridepublic Date convert(String s) {if (s == null) {throw new RuntimeException("请您传入数据..");}DateFormat df = new SimpleDateFormat("yyyy-MM-dd");try {return df.parse(s);} catch (ParseException e) {throw new RuntimeException("数据类型转换错误..");}}}

2.然后在springMVC.xml配置文件中配置自定义类型转换器

<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"><property name="converters" ><set><bean class="com.jw.Converter.MyConverter"></bean></set></property></bean>

这一步是在ConversionServiceFactoryBean组件中加上自己定义的转换器;

接下来在mvc名称空间中声明即可:

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

这样自定义类型转换器就ok了,你自己写的转换器会加在springMVC默认的转换器之中,也就是现在日期可以支持你定义的那种格式了

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。