博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring MVC的数据绑定(复杂数据绑定——数组与集合)
阅读量:3960 次
发布时间:2019-05-24

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

1. 数组的绑定

当前端请求需要传递到后台一个或多个相同名称参数的情况 (如批量删除),此种情况采用前面讲解的简单数据绑定的方式显然是不合适的,此时,就可以使用绑定数组的方式来完成。

创建一个展示用户信息的列表页面 user.jsp。如下:

定义了 name 属性相同而 value 属性值不同的复选框控件,并在每一个复选框对应的行中编写了一个对应用户,在单击"删除"按钮执行删除操作时,表单会提交到一个以 “/DeleteUsers” 结尾的请求中。

<%@ page language="java" contentType="text/html; charset=utf-8"	pageEncoding="utf-8"%>
DeleteUser
选择 用户名
黄月月1号
黄月月2号
黄月月3号

jsp页面定义之后就需要编写java代码对数据进行操作。

先定义了一个向用户列表页面 user.jsp 跳转的方法,然后定义了一个接收前端批量删除用户的方法 在删除方法中,使用了Integer 类型的数组进行数据绑定,并通过 for循环执行具体数据的删除操作。

//定义入口	@RequestMapping(value = "/toUser")	public String SelectUser() {
return "user"; } //数据操作 @RequestMapping(value = "/DeleteUser") public String DeleteUser(Integer [] ids) {
if (ids!=null) {
for (int i = 0; i < ids.length; i++) {
System.out.println("删除id为:"+ids[i]+" 的值!"); } }else {
System.out.println("ids == null"); } return "success"; }

运行项目,打开网址 http://localhost:8080/DataBanding/hello/toUser 选择俩个要删除的数据,点击删除提交。

在这里插入图片描述
在eclipse的控制台当中可以看到输出结果。由于只做简单演示,并没有对数据库当中的数据进行修改。只是单纯的对传递的参数进行获取输出。
在这里插入图片描述
2. 集合的绑定

在批量删除用户的操作中,前端请求传递的都是同名参数的用户 id ,只要在后台使用同一种数组类型的参数绑定接收,就可以在方法中通过循环数组参数的方式来完成删除操作,但如果是批量修改用户操作,前端请求传递过来的数据可能就会批量包含各种类型的数据,如 Integer,String。针对这种情况,我们可以使用集合数据绑定:即在包装类中定义一个包含用户信息类的集合,然后在接收方法中将参数类型定义为该包装类的集合。

新建一个com.lzq.vo包用于存放集合当中的元素。在包中新建一个类,变量定义及getter/setter

package com.lzq.vo;import java.util.List;import com.lzq.po.User;public class UserVO {
private List
users; public List
getUsers() {
return users; } public void setUsers(List
users) {
this.users = users; }}

定义一个jsp页面。user_edit.jsp当中对数据进行传递

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%>
集合
选择 用户名

最后编写接收批量修改用户的方法,以及向用户修改页面跳转的方法,在使用集合数据绑定时,后台方法中不支持直接使用集合形参进行数据绑定,所以需要使用包装POJO 作为形参,然后在包装 POJO 中包装一个集合属性。

@RequestMapping(value = "/toUserEdit")	public String toUserEdit() {
return "user_edit"; } @RequestMapping(value = "/EditUsers") public String EditUsers(UserVO userList) {
List
users = userList.getUsers(); if (users!=null) {
for (User user : users) {
if (user.getId()!=null) {
System.out.println("修改数据 :id = " + user.getId() + ", username =" + user.getUsername()); } } } return "success"; }

运行项目,输入网址:http://localhost:8080/DataBanding/hello/toUserEdit 。选择对象修改,在控制台当中查看输出。

在这里插入图片描述
在这里插入图片描述

转载地址:http://cgmzi.baihongyu.com/

你可能感兴趣的文章
快速幂
查看>>
vector.reserve and resize &&vector与map结合
查看>>
最长公共子序列
查看>>
计算几何
查看>>
求解方程
查看>>
太弱了。。水题
查看>>
位运算(含应用)
查看>>
野指针与空指针
查看>>
图文混排效果
查看>>
urllib2.urlopen超时问题
查看>>
魏兴国:深入浅出DDoS攻击防御
查看>>
使连续的参考文献能够中间用破折号连起来
查看>>
Discover Feature Engineering, How to Engineer Features and How to Get Good at It
查看>>
36辆车,6条跑道,无计时器,最少几次比赛可以选出前三
查看>>
matlab2012b与matlab7.1执行set(gca,'Yscale','log')之后画到的直方图结果居然不同
查看>>
回文题
查看>>
AJAX应用之注册用户即时检测
查看>>
File 类小结
查看>>
java除去字符串空格
查看>>
jsp 2.0标记文件
查看>>