從客戶端請(qǐng)求 key/value 數(shù)據(jù),經(jīng)過參數(shù)綁定,將 key/value數(shù)據(jù)綁定到Handler方法的形參上.而不是在Handler類中定義成員變量.
默認(rèn)支持的類型
springmvc中捷沸,有支持的默認(rèn)類型的綁定铸题。也就是說,直接在controller方法形參上定義默認(rèn)類型的對(duì)象蝌蹂,就可以使用這些對(duì)象。
HttpServletRequest對(duì)象
HttpServletResponse對(duì)象
HttpSession對(duì)象
Model/ModelMap對(duì)象
簡(jiǎn)單類型參數(shù)進(jìn)行綁定
要對(duì)簡(jiǎn)單類型參數(shù)進(jìn)行綁定需要使用
@RequestParam
注解.如果不使用這個(gè)注解,那么你的request傳入?yún)?shù)的名要與方法的參數(shù)名相同,才能綁定成功.
value表示你request傳入的參數(shù)名.
required表示我這個(gè)參數(shù)是否必須要傳,true默認(rèn)值,如果為false則表示不是必須要傳的.
defaultValue設(shè)置默認(rèn)值,如果這個(gè)參數(shù)沒有傳入,就會(huì)取默認(rèn)值.
綁定POJO
前臺(tái)標(biāo)簽的name屬性值就為Test類的屬性名.
自定義參數(shù)綁定實(shí)現(xiàn)日期類型綁定
對(duì)于Handler形參中Pojo對(duì)象,如果屬性中有日期類型,需要自定義參數(shù)綁定.
將請(qǐng)求日期數(shù)據(jù)傳轉(zhuǎn)換成日期類型,要轉(zhuǎn)換的日期類型和pojo中的類型保持一致.
要實(shí)現(xiàn)自定義參數(shù)綁定,我們需要實(shí)現(xiàn)一個(gè)Converter接口
/**
* Converter<String, Date>
* String 表示原類型
* Date 表示目標(biāo)類型
*/
public class TestConverter implements Converter<String, Date> {
@Override
public Date convert(String source) {
//轉(zhuǎn)成日期類型的格式(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>