springmvc参数绑定

 spring参数绑定过程

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

springmvc中,接收页面提交的数据是通过方法形参来接收。而不是在controller类定义成员变更接收!!!!

默认支持的类型

HttpServletRequest

通过request对象获取请求信息

HttpServletResponse

通过response处理响应信息

HttpSession

通过session对象得到session中存放的对象

Model/ModelMap

model是一个接口,modelMap是一个接口实现 。

作用:将model数据填充到request域。

简单类型

通过@RequestParam对简单类型的参数进行绑定。

如果不使用@RequestParam,要求request传入参数名称和controller方法的形参名称一致,方可绑定成功。

如果使用@RequestParam,不用限制request传入参数名称和controller方法的形参名称一致。

通过required属性指定参数是否必须要传入,如果设置为true

1     //@RequestParam将传入的参数名称和形参进行绑定
2     //required指定参数是否必须传入 defaultVaklue 默认值
3     @RequestMapping("/editItems")
4     public String editItems(Model model,@RequestParam(value="id",required=true) Integer items_id) throws Exception {
5         //调用service查询商品信息
6         ItemsCustom itemsCustom = itemsService.findItemsById(items_id);
7         model.addAttribute("itemsCustom", itemsCustom);
8         return "items/editItems";
9     }

  pojo绑定

页面中input的name和controller的pojo形参中的属性名称一致,将页面中数据绑定到pojo。

 1     @RequestMapping("/editItemsSubmit")
 2     public String editItemsSubmit(HttpServletRequest request,Integer id,ItemsCustom itemsCustom) throws Exception {
 3         
 4         itemsService.updataItems(id, itemsCustom);
 5         //重定向到商品查询列表
 6         //return "redirect:queryItems.action";
 7         //页面转发
 8         //return "forward:queryItems.action";
 9         
10         return "success";
11     }

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

对于controller形参中pojo对象,如果属性中有日期类型,需要自定义参数绑定。

将请求日期数据串传成 日期类型,要转换的日期类型和pojo中日期属性的类型保持一致。

所以自定义参数绑定将日期串转成java.util.Date类型。

需要向处理器适配器中注入自定义的参数绑定组件。

自定义日期类型绑定 

 1 public class CustomDateConverter implements Converter<String, Date> {
 2 
 3     public Date convert(String source) {
 4         //实现将日期格式的类型转换为"yyyy-MM-dd HH:mm:ss"
 5         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 6         try {
 7             return simpleDateFormat.parse(source);
 8         } catch (ParseException e) {
 9             e.printStackTrace();
10         }
11         //参数绑定失败返回null
12         return null;
13     }
14     
15 }

配置方式

 1 <mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
 2 <!-- 自定义参数绑定 -->
 3     <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
 4         <!-- 转换器 -->
 5         <property name="converters">
 6             <list>
 7                 <!-- 日期类型转换 -->
 8                 <bean class="cn.cuibusi.ssm.controller.converter.CustomDateConverter"/>
 9             </list>
10         </property>
11     </bean>

 

转载于:https://www.cnblogs.com/cuibin/p/6854097.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值