一.基本数据类型和字符串类型的封装
- 使用方式:
- 响应方法的形参名称与请求参数key名称一致即可
- 示例:
定义username的形参
请求参数key同样为username
二.实体类型的封装
- 情况一:javaBean实体类其中 ”无“ 引用类型
- 1.同基本类型参数一样,javaBean类中的属性字段必须与请求参数key对应(不如说与javaBean中set方法对应)
- 2.必须要有set方法(此实现原理是基于set方法赋值的,所以必须要有set方法)。
- 情况二:javaBean实体类其中 ”有“ 引用类型
- 1.javaBean中引用类型必须有set方法且该引用类型内部相关字段也必须有set方法
- 2.请求参数格式为:引用类型.引用类型属性字段
- 示例:
三.配置乱码问题过滤器
- 解决乱码问题需要配置过滤器
- 以前都是通过过滤器然后使用动态代理配置过滤器,但是spring提供了一个过滤器类,我们只需要配置上去即可
- <filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
四.集合类型参数绑定
- 在实现类中定义list、map集合,并指定对应的set方法
- 下面使用List对象集合和map对象集合举例
存入list中下标为0的对象中uname、age属性,以及存入map中key为one的对象中的uname、age属性
五.自定义类型转换器
- 后台获取的请求参数都是string类型的,一般springmvc会在进行数据封装的时候自动进行转换
- 但是有些数据格式springmvc自动封装不了,比如日期类型2000/1/1spring能够自动封装但是2000-1-1却不能
- 报错
- 自定义类型转换编写以及配置
- 1.定义一个类,实现Converter<S,T>接口,S表示接受的类型,T表示目标类型,该接口是类型转换的总接口,其他自动转换的其他类型也是基于此接口实现。
- 2.实现convert()方法,在其中写入自定义类型转换规则
- 3.例如实现自定义Data类型转换
- public Date convert(String source){
- if(source == null){
- throw new RuntimeException("请您传入数据");
- }
- DataFormat df = new SimpleDateFormat("yyyy-MM-dd");
- try{
- return df.parse(source);
- }catch(Exception e){
- throw new RuntimeException("数据类型转换出现错误");
- }
- }
- 4.配置自定义类型转换器
- <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
- <property name="converters">
- <set>
- <bean class="cn.gaipian.utils.StringToDateConverter"/>
- </set>
- </property>
- </bean>
- 5.开启springmvc框架注解支持
- mvc:annotation-driven默认是将自带的转换器配置如容器的,但是自定义的需要自己配置