天天看点

springMVC教程中级(四)Controller中级篇1(回传、批量)一、前言二、神奇的@ModelAttribute三、controller批量参数

     回顾上一章,我们讲解了Controller的几种返回类型:String(逻辑视图)、ModelAndView(渲染视图)、void(HttpServletRequest)、redirect(重定向)、forward(页面转发),以及Controller的四种参数转换方法:@InitBinder属性编辑器java文件与配置的方法、参数转换器关于没有没<mvc:annotation-driven>标签的两种配置方式。

注解@ModelAttribute 注解在方法头上,先于所有方法

在页面上

没有任何Controller里面的方法执行商品类型,但是我们页面还是通过jstl拿到了它。用于完成一些公用数据的展示,选择等待。(大家都需要塞进去的,就可以这么玩耍!!!)

springMVC教程中级(四)Controller中级篇1(回传、批量)一、前言二、神奇的@ModelAttribute三、controller批量参数

注解@ModelAttribute放在方法参数上,可以了让参数回传!!!

注意:我们的URl没有跳转,只是页面跳到了修改页面,但是数据依然可以显示在页面上。(是不是想到参数验证??不跳页面)

springMVC教程中级(四)Controller中级篇1(回传、批量)一、前言二、神奇的@ModelAttribute三、controller批量参数

前面我们已经讲解了一些传递的参数,参数都只是单个实体、基本类型、map,我们来看看如果传递批量数据到我们的前端控制器。

1、Controller类编写

2、JSP页面编写:

我们只需要步骤如下

1、标出我们选择对象 

<td><input type="checkbox" name="delete_id" value="${item.id}"/></td>

2、获取选择值:

3、提交到我们的Controller方法

4、注意:我们的name就是一个键,所以接受的方法里面,两个键值必须都是delete_id

在js或者ajax提交,我们可以定义一个数组:<code>var</code> <code>delete_id=[12,23,5,3,25,98,76,54,56,76];一样的可以</code>

全部editItemsList.jsp如下:

参数类

Controller类

2、JSP编写

1】批量修改页面的编写:editItemsList.jsp 查询数据

2】标出所有对象,根据jstl标签([]里面是迭代变量,就是下标),定义好name属性:itemList键与我们接受键相同,或者我们用@RequestParam来保证参数正确

name="itemsList[${s.index}].name"

3】提交到Controller方法

editItemsList.jsp 页面如下