Spring MVC复杂数据绑定-绑定聚集

打印 上一主题 下一主题

主题 909|帖子 909|积分 2727

【图书先容】《Spring+Spring MVC+MyBatis从零开始学(视频教学版)(第3版)》_【新华文轩】spring+spring mvc+mybatis从零开始学(视频教学版) 第3版 正版-CSDN博客
《Spring+Spring MVC+MyBatis从零开始学(视频教学版)(第3版)》(杨章伟,刘祥淼)【择要 书评 试读】- 京东图书
【图书先容】案例可借鉴的Spring应用开辟书-CSDN博客
Spring MVC简单数据绑定-CSDN博客
在项目中,前端请求传递过来的数据可能会批量包含各种类型的数据,如Integer、String等。这种情况使用数组绑定是无法实现的。针对这种情况,可以使用聚集数据绑定,即在包装类中界说一个包含对象类的聚集,然后在接收方法中将参数类型界说为该包装类的聚集。
【示例12-6】下面以批量修改用户为例解说一下聚集数据绑定的使用。
 在src目次下创建一个com.ssm.vo包,并在包中创建包装类UserVo来封装课程聚集属性,代码如文件12.13所示。
文件12.13  UserVo.java
  1. 01        package com.ssm.vo;
  2. 02        import java.util.List;
  3. 03        import com.ssm.po.User;
  4. 04        /*
  5. 05         * 用户包装类
  6. 06         */
  7. 07        public class UserVo {
  8. 08                private List<User> users;   //用户列表
  9. 09                public List<User> getUsers() {
  10. 10                        return users;
  11. 11                }
  12. 12                public void setUsers(List<User> users) {
  13. 13                        this.users = users;
  14. 14                }
  15. 15        }
复制代码
在控制器类 UserController中编写接收批量修改用户的方法,以及向用户修改页面跳转的方法,其代码如下所示:
  1. //向用户批量修改页面跳转
  2. @RequestMapping("/toUserEdit")
  3. public String toUserEdit() {
  4. return "user_edit";
  5. }
  6. //接收批量修改用户的方法
  7. @RequestMapping("/editUsers")       
  8. public String editUsers(UserVo userList){
  9.         //将所有用户数据封装到集合中
  10.         List<User> users=userList.getUsers();
  11.         for(User user:users){
  12.                 if(user.getId()!=null){
  13.                         System.out.println("修改了id为"+user.getId()+"的用户名为"+
  14. user.getUsername());
  15.                 }
  16.         }
  17.         return "success";
  18. }
复制代码
在上述代码的两个方法中,通过toUserEdit()方法将跳转到user_edit.jsp页面,通过editUsers()方法将执行用户批量更新操纵;其中该方法的UserVo类型参数,用于绑定并获取页面传递过来的用户数据。
留意:在使用聚集数据绑定时,配景方法中不支持直接使用聚集形参举行数据绑定,所以必要使用包装POJO作为参数,然后在包装POJO中包装一个聚集属性。
 在项目的/WEB-INF/jsp目次下创建页面文件user_edit.jsp,如文件12.14所示。
文件12.14  user_edit.jsp
  1. 01        <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. 02            pageEncoding="UTF-8"%>
  3. 03        <!DOCTYPE HTML>
  4. 04        <html>
  5. 05                <head>
  6. 06                        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. 07                <title>修改用户</title>
  8. 08                </head>
  9. 09                <body>
  10. 10                        <form action="${pageContext.request.contextPath}/editUsers" method="post">
  11. 11                                <table>
  12. 12                                        <tr>
  13. 13                                                <td>选择</td>
  14. 14                                                <td>用户名</td>
  15. 15                                        </tr>
  16. 16                                        <tr>
  17. 17                                                <td><input name="users[0].id" value="1" type="checkbox"></td>
  18. 18                                                <td>
  19. 19                           <input name="users[0].username" value="zhangsan" type="text">
  20. 20                          </td>
  21. 21                                        </tr>
  22. 22                                                <tr>
  23. 23                                                <td><input name="users[1].id" value="2" type="checkbox"></td>
  24. 24                                                <td>
  25. 25                             <input name="users[1].username" value="lisi" type="text">
  26. 26                           </td>
  27. 27                                        </tr>
  28. 28                                </table>
  29. 29                                <input type="submit" value="修改"/>
  30. 30                        </form>
  31. 31                </body>
  32. 32        </html>
复制代码
在上述页面代码中,模仿展示了id为1、用户名为zhangsan和id为2、用户名为lisi的两个用户。当单击“修改”按钮后,会将表单提交到一个以editUsers结尾的请求中。

 发布并启动项目,在浏览器中访问地点http://localhost:8080/chapter12_war_exploded/ toUserEdit,表现结果如图12.10所示。

图12.10  user_edit.jsp页面

将图12.10所示页面中的用户名zhangsan改为tom,lisi改为rose,并勾选两项数据前面的复选框,然后单击“修改”按钮后,浏览器会跳转到success.jsp页面中。此时控制台的打印信息如图12.11所示。从结果中可以看出,已经成功输出请求中批量修改的用户信息,这就是聚集类型的数据绑定。

图12.11  运行结果




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

反转基因福娃

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表