SpringMVC请求参数的绑定

SpringMVC请求参数的绑定

假如请求带有参数 userName=cwh&userPass=123456

方法的参数列表为(String userName, String userPass)

那么MVC框架就会自动的将值填充

String类型和基本类型,javaBean,集合都可以自动填充。

当javaBean有应用类型的情况:

比如 A类中:

{

​ String userName;

​ String userPass;

​ B b;

​ getter&&setter

}

B:

{

​ String userAge;

}

那参数应该得是userName=cwh&userPass=123456&b.userAge才能封装

如果A中是一个 List<B> bList;呢 ?那参数应该是bLister[0].userAge

如果A中是一个Map<String, B> bMap呢?参数应该是bMap[‘one’].userAge

自定义类型转换器

SpringMVC能实现绝大多数的类型转换,但总会一些类型和格式是不支持的,但SpringMVC运行我们自己再定义一些类型转换器。

例如:

/**
 * 把字符串转换日期
 * Converter<?,?>中,第一个是被转换的类型,后一个是要转换成的类型
 * 页面传入的参数都是字符串,所以第一个String基本是固定的
 */
   public class StringToDateConverter implements Converter<String,Date>{

   /**
    * 必须实现的方法
    * String source    传入进来字符串
    * @param source
    * @return
    */
    public Date convert(String source) {
      // 判断
      if(source == null){
          throw new RuntimeException("请您传入数据");
      }
      DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

      try {
          // 把字符串转换日期
          return df.parse(source);
      } catch (Exception e) {
          throw new RuntimeException("数据类型转换出现错误");
      }
   }
}

然后我们需要把我们自定义的类型转换器加到SpringMVC的类型转换器的集合中

<!--配置自定义类型转换器-->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
    <property name="converters">
        <set>
            <bean class="com.util.StringToDateConverter"/>
        </set>
    </property>
</bean>

之后还需要添加支持

<mvc:annotation-driven conversion-service="conversionService"/>

获取Servlet原生的API:只需要在参数列表中添加对应参数即可

如:(HttpServletRequest rq,HttpServletResponse rp)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值