博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springmvc 中的data bind机制
阅读量:6256 次
发布时间:2019-06-22

本文共 2246 字,大约阅读时间需要 7 分钟。

  hot3.png

一、使用@RequestParam将请求参数绑定至方法参数

使用这种方法,不必要求请求的参数名和形参名保持一致。并且,如果参数使用了该注解,则该参数默认是必须提供的(页面必须保证此值存在),但你也可以把该参数标注为非必须的:只需要将@RequestParam注解的required属性设置为false即可(比如,@RequestParam(value="id", required=false))。

@Controller@RequestMapping("/pets")@SessionAttributes("pet")public class EditPetForm {    // ...    @RequestMapping(method = RequestMapping.GET)    public String setupForm(@RequestParam("petId") int petId, ModelMap model) {        Pet pet = this.clinic.loadPet(petId);        model.addAttribute("pet", pet);        return "petForm";    }    // ,..}

二、Stirng 类型的参数绑定

  1. Http请求传递的数据都是字符串String类型的
  2. 属性编辑器(PropertyEditor)可以将string 类型转换成我们需要的java对象( 通过使用setAsText方法)。
  3. 我们可以自定义PropertyEditor,只要继承PropertyEditorSupport类并重写setAsText方法就可以。 Spring中有很多自定义的属性编辑器,都在spring-beans jar包下的org.springframework.beans.propertyeditors包里。
  • 关于 Converter 接口的使用参考 :

三、数组参数的绑定

  1. 需求 商品的批量删除,用户可以选择多个商品,批量删除。
  2. 表现层的实现 关键:将页面选择的商品id --> controller方法形参中; 方法形参使用数组( items_id)接收页面的请求的多个商品id.

页面定义:

<%--多选框 --%>

controller方法定义:

@RequestMapping("deleteItems")public String deleteItems(Integer[] items_id) {      //调用service批量删除商品      return "success";}

四、List 参数的绑定

需求:批量提交数据时,将提交的数据绑定到List<pojo> 中 ,比如:成绩录入(批量提交) 本例子需求,批量修改,在页面输入多个商品的信息,将多个商品提交到controller方法中.

表现层:controller方法定义: 1.进入商品修改界面(样式,参考商品列表实现 2. 批量修改提交 3. 既然页面没有list属性.可以自己在pojo中设置一个List实例变量,并提供getter、setter方法 4. 那么,就可以通过包装pojo接收,页面传给List实例变量的数据。页面传来的每个数据都是list的元素(每个属性都用一个对象来包装),并在遍历时以其varStatus的值来标识下标.

页面

商品名称 商品价格 生产日期 商品描述 操作
"/>

controller方法:

//批量修改显示页面@RequestMapping("/editItemsQuery")public String editItemsQuery(Model model, ItemsQueryVo itemsQueryVo) throws Exception {      List
itemsList = itemsService.findItemsList(itemsQueryVo); model.addAttribute("itemsList", itemsList); return "items/editItemsQuery";}//修改提交页面@RequestMapping("/editItemsAll")public String editItemsAll(ItemsQueryVo itemsQueryVo) { //注入service操作 return "success";}

五、map 参数的绑定

map 与list类似.

转载于:https://my.oschina.net/lemos/blog/790640

你可能感兴趣的文章
uva-10879-因数分解
查看>>
python 调用aiohttp
查看>>
Spring Boot中使用MyBatis注解配置详解
查看>>
linux下文件的一些文件颜色的含义
查看>>
跨域iframe高度自适应(兼容IE/FF/OP/Chrome)
查看>>
如何花更少的时间学习更多的知识
查看>>
学习鸟哥的Linux私房菜笔记(8)——文件查找与文件管理2
查看>>
升级fedora 18到fedora 19
查看>>
【代码小记】无
查看>>
11月20日学习内容整理:jquery插件
查看>>
Redis客户端集群
查看>>
javascript基础篇:函数
查看>>
SVN与TortoiseSVN实战:补丁详解
查看>>
java一些面试题
查看>>
干货型up主
查看>>
获取页面中所有dropdownlist类型控件
查看>>
读《淘宝数据魔方技术架构解析》有感
查看>>
[转载]如何破解Excel VBA密码
查看>>
【BZOJ】2563: 阿狸和桃子的游戏
查看>>
redis 中文字符显示
查看>>