SpringMVC请求数据

Request

请求参数

  • SpringMVC将传递的参数封装到处理器方法的形参中,达到快速访问参数的目的.
@RequestMapping("/requestParam")
public String requestParam(String name){
     System.out.println("name="+name);
      return "page.jsp"; 
}

访问URL:http://localhost/requestParam?name=zhangsan

请求参数类型

  • 普通类型参数(Srring,int…)
  • POJO类型参数(bean对象)
  • 数组类型参数
  • 集合类型参数

普通类型参数

  • 参数名与处理器方法形参名保持一致
@RequestMapping("/requestParam1")
public String requestParam1(String name ,String age){
     System.out.println("name="+name+",age="+age);
      return "page.jsp"; 
}

访问URL:http://localhost/requestParam1?name=zhangsan&age=14

参数设定

  • 名称:@RequestParam
  • 类型:形参注解
  • 位置:处理器类中的方法形参前方
  • 作用:绑定请求参数与对应处理方法形参间的关系
  • 范例:
    在这里插入图片描述
    • 访问路径:/requestRaram2/userName=zhangsan

POJO类型参数

  • 当POJO中石油简单类型属性时,参数名称与POJO类属性名保持一致
    在这里插入图片描述

参数冲突

  • 但POJO类型属性与其他形参出现同名问题时,将被同时赋值
  • 建议使用@RequestParam注解进行区分
    在这里插入图片描述

复杂POJO类型参数

  • 当POJO中出现对象属性时,参数名称与对象层次结构名称保持一致
    在这里插入图片描述

  • 当POJO中出现集合,保存简单数据,使用多个相同名称的参数为其赋值
    在这里插入图片描述

  • 当POJO中出现List,保存对象数据,参数名称与对象层次结构名称保持一致,使用数组格式描述集合中对象的位置
    在这里插入图片描述

  • 当POJO中出现Map,保存对象数据,参数名称与对象层次结构名称保持一致,使用映射格式描述集合中对象的位置在这里插入图片描述
    注意:SpringMVC默认键List作为对象处理,赋值前先创建对象,然后将nick作为对象的属性进行处理.由于List是接口,无法创建对象,报无法找到构造方法异常;修复类型为可创建对象的ArrayList类型后,对象key创建,但没有nick属性,因此数据为空.此时需要告知SpringMVC的处理器nick是一组数据,而不是一个单一数据.通过@RequestParam注解,将数量大于1个names参数打包成参数数组后,SpringMVC才能识别该参数数据格式,并判定形参类型是否为数组或集合,并按数组或集合对象的形式操作数据.

类型转换器

  • SpringMVC对接收的数据进行自动类型转换,该工作通过Converter接口实现
    在这里插入图片描述

  • 标量转换器
    在这里插入图片描述

  • 集合,数组相关转换器
    在这里插入图片描述

  • 默认转换器
    在这里插入图片描述

日期类型格式转换

  • 声明制动液的转换格式并覆盖系统转换格式
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<!--2.自定义Converter格式类型设定,该设定使用的是同类型覆盖的思想--> 
   <property name="formatters">
<!--3.使用set保障相同类型的转换器仅保留一个,避免冲突-->
           <set>
<!--4.设置具体的格式类型-->
           <bean class="org.springframework.format.datetime.DateFormatter">
<!--5.类型规则-->
           <property name="pattern" value="yyyy-MM-dd"/>
           </bean>
           </set>
    </property>
</bean>


<!--5.启用自定义Converter-->
<mvc:annotation-driven conversion-service="conversionService"/>

日期类型格式转换(注解版)

  • 名称:@DateTimeFormat
  • 类型:形参注解,成员变量注解
  • 位置:形参前面 或者 成员变量上方
  • 作用:为当前参数或变量制定类型转换规则
  • 范例:
    在这里插入图片描述
  • 注意:依赖注解驱动支持
<mvc:annotation-driven />

自定义类型转换器

  • 自定义类型转换器,实现Converter接口,并制定转换前与转换后的类型
public class MyDateConverter implements Converter<String,Date> {
@Override
     public Date convert(String source) {
   DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
   Date date = null;
   try {
   date = format.parse(source);
    } catch (ParseException e) {
    e.printStackTrace();
    }
    return date;
  }
}
  • 注册自定义类型转换器
<!--1.将自定义Converter注册为Bean,受SpringMVC管理--> 
<bean id="myDateConverter" class="com.itheima.converter.MyDateConverter"/>


<!--2.设定自定义Converter服务bean-->
<bean id="conversionService"class="org.springframework.context.support.ConversionServiceFactoryBean">
<!--3.注入所有的自定义Converter,该设定使用的是同类型覆盖的思想--> 
   <property name="converters">
<!--4.set保障同类型转换器仅保留一个,去重规则以Converter<S,T>的泛型为准-->
   <set>
 <!--5.具体的类型转换器--> 
   <ref bean="myDateConverter"/>
   </set>
   </property>
</bean>
    • 通过注册自定义转换器,将该功能加入到SpringMVC的转换服务ConverterService中

请求映射

  • 名称:@ReuestMapping
  • 类型:方法注解
  • 位置:处理器类中的方法定义上方
  • 作用:绑定请求地址与对应处理方法间的关系
  • 范例:
    在这里插入图片描述
  • 访问路径:/requestURL1

请求映射二:

  • 名称:@RequestMapping

  • 类型:类注解

  • 位置:处理器类定义上方

  • 作用:为当前处理器中所有方法设定公共的访问路径前缀

  • 范例:
    在这里插入图片描述

    • :访问路径:/user/requestURL1
  • 请求返回的页面地址默认为当前路径

  • 当设置了公共的访问前缀后,当前路径发生了变化,需要根据变化修改地址或修改访问页面的路径
    在这里插入图片描述

@ReuqestMapping属性

  • 常用属性
    • value
    • method
      在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值