当前位置:   article > 正文

Spring MVC数据绑定和响应——复杂数据绑定(一)数组绑定

Spring MVC数据绑定和响应——复杂数据绑定(一)数组绑定

一、数组绑定的使用场景

        在实际开发中,可能会遇到客户端请求需要传递多个同名参数到服务器端的情况,这种情况采用前面讲解的简单数据绑定的方式显然是不合适的。此时,可以使用数组来接收客户端的请求参数,完成数据绑定。

接下来通过一个批量提交商品的案例来演示数组的数据绑定,具体实现步骤如下所示。

1、创建一个商品类Product,用于封装商品信息。Product类的具体代码如下所示。

  1. public class Product {
  2. private String proId; //商品id
  3. private String proName; //商品名称
  4. public String getProId() {
  5. return proId;
  6. }
  7. public void setProId(String proId) {
  8. this.proId = proId;
  9. }
  10. public String getProName() {
  11. return proName;
  12. }
  13. public void setProName(String proName) {
  14. this.proName = proName;
  15. }
  16. }

2、创建一个提交商品页面products.jsp,在products.jsp中创建一个展示商品列表的表单,表单提交时向服务器端发送商品列表的所有id。products.jsp的具体代码如下所示。

  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
  2. <html>
  3. <head>
  4. <title>提交商品</title>
  5. </head>
  6. <body>
  7. <form action="${pageContext.request.contextPath }/getProducts"
  8. method="post">
  9. <table width="220px" border="1">
  10. <tr>
  11. <td>选择</td>
  12. <td>商品名称</td>
  13. </tr>
  14. <tr>
  15. <td>
  16. <input name="proIds" value="1" type="checkbox">
  17. </td>
  18. <td>Java基础教程</td>
  19. </tr>
  20. <tr>
  21. <td>
  22. <input name="proIds" value="2" type="checkbox">
  23. </td>
  24. <td>JavaWeb案例</td>
  25. </tr>
  26. <tr>
  27. <td>
  28. <input name="proIds" value="3" type="checkbox">
  29. </td>
  30. <td>SSM框架实战</td>
  31. </tr>
  32. </table>
  33. <input type="submit" value="提交商品"/>
  34. </form>
  35. </body>
  36. </html>

3、创建一个商品处理器类ProductController,在ProductController类中定义getProducts() 方法,用于接收表单提交的商品id。ProductController类的具体代码如下所示。

  1. @Controller
  2. public class ProductController {
  3. // 获取商品列表
  4. @RequestMapping("/getProducts")
  5. public void getProducts(String[] proIds) {
  6. for (String proId : proIds) {
  7. System.out.println("获取到了Id为"+proId+"的商品"); }
  8. }
  9. }

4、启动chapter12项目,在浏览器中访问提交商品页面products.jsp,访问地址为http://localhost:8080/chapter12/products.jsp。

5、勾选products.jsp显示效果图中所示的全部复选框,然后单击“提交商品”按钮,控制台打印信息如下图所示。

  1. 获取到了Id为1的商品
  2. 获取到了Id为2的商品
  3. 获取到了Id为3的商品

        从图中所示的打印信息可以看出,程序打印出了提交的商品,这表明getProducts()方法获取到了客户端请求中的参数proIds的值,并将请求参数中多个同名的proIds参数值全部存储在了getProducts()方法的proIds形参中,实现了数组的数据绑定。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/774167
推荐阅读
相关标签
  

闽ICP备14008679号