《Spring+Spring MVC+MyBatis从零开始学(视频教学版)(第3版)》(杨章伟,刘祥淼)【摘要 书评 试读】- 京东图书
【图书介绍】案例可借鉴的Spring应用开发书-CSDN博客
在实际项目开发中,除简单数据类型外,还会经常遇到一些比较复杂的数据绑定问题,比如数组的绑定、集合的绑定,本节将具体讲解数组绑定和集合绑定的使用。
12.3.1 绑定数组
在实际开发中,可能会遇到前端请求需要传递到后台一个或多个相同名称参数的情况(如批量删除),此时不适合采用简单数据绑定,而可以使用绑定数组的方式。
【示例12-5】下面通过一个批量删除用户的例子来详细讲解绑定数组的操作。
在chapter12项目的WEB-INF/jsp目录下创建一个展示课程信息的列表页面course.jsp,代码如文件12.11所示。
文件12.11 course.jsp
01 <%@ page language="java" contentType="text/html; charset=UTF-8"
02 pageEncoding="UTF-8"%>
03 <!DOCTYPE HTML>
04 <html>
05 <head>
06 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
07 <title>课程列表</title>
08 </head>
09 <body>
10 <form action="${pageContext.request.contextPath}/deleteCourse" method="post">
11 <table>
12 <tr>
13 <td>选择</td>
14 <td>课程名</td>
15 </tr>
16 <tr>
17 <td><input name="ids" value="1" type="checkbox"></td>
18 <td>JAVA程序设计</td>
19 </tr>
20 <tr>
21 <td><input name="ids" value="2" type="checkbox"></td>
22 <td>MySQL数据库</td>
23 </tr>
24 <tr>
25 <td><input name="ids" value="3" type="checkbox"></td>
26 <td>JavaEE应用开发</td>
27 </tr>
28 </table>
29 <input type="submit" value="删除"/>
30 </form>
31 </body>
32 </html>
在上述页面代码中定义了3个name属性相同而value属性值不同的复选框控件,并在每一个复选框对应的行中编写了一个对应课程。在单击“删除”按钮执行删除操作时,表单会提交到一个以“/ deleteCourse”结尾的请求中。
在控制器类CourseController中,编写接收批量删除课程的方法(同时为了方便向课程列表页面跳转,还需增加一个向course.jsp页面跳转的方法),其代码如文件12.12所示。
文件12.12 CourseController.java
01 package com.ssm.controller;
02 import org.springframework.stereotype.Controller;
03 import org.springframework.web.bind.annotation.RequestMapping;
04 import org.springframework.web.bind.annotation.RequestParam;
05 @Controller
06 public class CourseController {
07 //向课程页面跳转
08 @RequestMapping("/toCourse")
09 public String toCourse(){
10 return "course";
11 }
12 //删除课程
13 @RequestMapping("/deleteCourse")
14 public String deleteCourse(@RequestParam(value="ids",required=false) Integer[] ids){
15 if(ids!=null){
16 //使用输出语句模拟已经删除的课程
17 for(Integer id:ids){
18 System.out.println("删除了id为"+id+"的课程");
19 }
20 }else{
21 System.out.println("ids=null");
22 }
23 return "success";
24 }
25 }
在上述代码中,首先定义了一个向课程列表页面course.jsp跳转的方法toCourse(),然后定义了一个接收前端批量删除用户的方法。在删除方法中使用了Integer类型的数组进行数据绑定,并通过for执行具体数据的删除操作。
发布并启动项目,在浏览器中访问地址http://localhost:8080/chapter12_war_exploded /toCourse,显示效果如图12.8所示。
图12.8 运行结果course.jsp课程列表页面
勾选图12.8所示的界面中的全部复选框,然后单击“删除”按钮,程序在正确执行后会跳转到success.jsp页面。此时控制台的打印信息如图12.9所示。从图12.9所示的结果中可以看出,已成功执行了批量删除操作,这说明已成功实现了数组类型的数据绑定。
图12.9 运行结果
标签:删除,课程,Spring,绑定,MVC,jsp,页面 From: https://blog.csdn.net/brucexia/article/details/145141965