从客户端请求 key/value 数据,经过参数绑定,将 key/value数据绑定到Handler方法的形参上.而不是在Handler类中定义成员变量.
默认支持的类型
springmvc中,有支持的默认类型的绑定。也就是说,直接在controller方法形参上定义默认类型的对象,就可以使用这些对象。
HttpServletRequest对象
HttpServletResponse对象
HttpSession对象
Model/ModelMap对象
简单类型参数进行绑定
要对简单类型参数进行绑定需要使用
@RequestParam
注解.如果不使用这个注解,那么你的request传入参数的名要与方法的参数名相同,才能绑定成功.
value表示你request传入的参数名.
required表示我这个参数是否必须要传,true默认值,如果为false则表示不是必须要传的.
defaultValue设置默认值,如果这个参数没有传入,就会取默认值.
绑定POJO
前台标签的name属性值就为Test类的属性名.
自定义参数绑定实现日期类型绑定
对于Handler形参中Pojo对象,如果属性中有日期类型,需要自定义参数绑定.
将请求日期数据传转换成日期类型,要转换的日期类型和pojo中的类型保持一致.
要实现自定义参数绑定,我们需要实现一个Converter接口
/**
* Converter<String, Date>
* String 表示原类型
* Date 表示目标类型
*/
public class TestConverter implements Converter<String, Date> {
@Override
public Date convert(String source) {
//转成日期类型的格式(yyyy-MM-dd HH:mm:ss)
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = simpleDateFormat.parse(source);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
}
然后在配置Spring MVC的xml配置文件
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="cc.test.TestConverter"/>
</list>
</property>
</bean>