JavaWeb学习笔记-springmvc-13-spring参数绑定过程

从客户端请求key/value数据,经过参数绑定,绑定到controller形参上

处理器适配器调用springmvc提供的参数绑定组件将key/value数据转换为controller方法的形参
参数绑定组件:在springmvc早期版本使用PropertyEditor(只能将字符串转换为java对象),后期使用converter(可以进行任意类型转换)
springmvc提供了很多converter,特殊情况下需要自定义(如日期数据)

converter默认支持

  • HttpServletRequest
  • HttpServletResponse
  • HttpSession
  • Model/ModelMap
  • 简单类型

@RequestParam

对简单类型进行参数绑定,不使用必须名称与传入参数一致
可以指定参数是否必须传入
可以设默认值

@RequestParam(value="id",required="true",defaultValue="")

converter绑定pojo

易发生乱码,在web.xml中添加post乱码过滤器
页面中input的name的和controller的pojo形参中的属性名称一致,将页面中数据绑定到pojo

自定义参数绑定实现日期类型绑定

将请求的日期数据串转换为日期类型,要转换的日期类型和pojo属性类型保持一致
需要向处理器适配器中注入自定义的参数绑定组件

<mvc:annotation-driver conversion-service="conversionService"/>
<!--自定义参数绑定-->
<bean id="conversionService" class="org.springframework.format.support.formattingConversionServiceFactoryBean">
    <!--转换器-->
    <property name="converters">
        <list>
            <!--日期类型转换-->
            <bean class="xxx.xxx.xxx.xxx"/>
        </list>
    </property>
</bean>
public class CustomerDateConverter implements Converter<String,Date>{
    public Date convert(String source){
        //yyyy-MM-dd HH:mm:ss
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try{
            //转换直接返回
            return simpleDateFormat.parse(source);
        }catch(ParseException e){
            e.printStackTrae();
        }
        //绑定失败,返回空
        return null;
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值