一 简单类型的绑定
在上文中可以看到Controller方法中出现了参数,那么Controller方法对于接受的参数有什么要求呢?
1 默认参数
- HttpServletRequest
- HttpServletResponse
- Model/ModelMap
- HttpSession
2 简单参数
要求request传入参数名称和Controller方法的形参名称一致,才可以绑定成功。但是可以使用@RequestParam,不用限制Request传入参数与形参名称一致。
还可以通过required属性设置是否必须传入参数。
@RequestMapping(value="/editItems",method={RequestMethod.POST,RequestMethod.GET})
//@RequestParam里边指定request传入参数名称和形参进行绑定。
//通过required属性指定参数是否必须要传入
//通过defaultValue可以设置默认值,如果id参数没有传入,将默认值和形参绑定。
public String editItems(Model model,@RequestParam(value="id",required=true) Integer items_id)throws Exception
3 pojo绑定
要求request中的参数名称与pojo中的属性名称一致。
4 日期参数绑定
如果pojo中有日期,那么就需要自定义转换器来实现参数的转换。在pojo中的属性日期是什么类型,就需要修改为什么类型,在这里例子中,是java.util.date。
我们需要在处理器适配器中加入转换器的绑定组件。首先,我们需要自定义一个日期转换器:
public class CustomDateConverter implements Converter<String,Date>{
public Date convert(String s) {
//实现 将日期串转成日期类型(格式是yyyy-MM-dd HH:mm:ss)
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
//转成直接返回
return simpleDateFormat.parse(s);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//如果参数绑定失败返回null
return null;
}
}
然后在springmvc.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="com.iot.learnssm.firstssm.controller.converter.CustomDateConverter"/>
</list>
</property>
</bean>