赞
踩
在实际开发中,可能会遇到客户端请求需要传递多个同名参数到服务器端的情况,这种情况采用前面讲解的简单数据绑定的方式显然是不合适的。此时,可以使用数组来接收客户端的请求参数,完成数据绑定。
接下来通过一个批量提交商品的案例来演示数组的数据绑定,具体实现步骤如下所示。
- public class Product {
- private String proId; //商品id
- private String proName; //商品名称
-
- public String getProId() {
- return proId;
- }
-
- public void setProId(String proId) {
- this.proId = proId;
- }
-
- public String getProName() {
- return proName;
- }
-
- public void setProName(String proName) {
- this.proName = proName;
- }
- }
- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
- <html>
- <head>
- <title>提交商品</title>
- </head>
- <body>
- <form action="${pageContext.request.contextPath }/getProducts"
- method="post">
- <table width="220px" border="1">
- <tr>
- <td>选择</td>
- <td>商品名称</td>
- </tr>
- <tr>
- <td>
- <input name="proIds" value="1" type="checkbox">
- </td>
- <td>Java基础教程</td>
- </tr>
- <tr>
- <td>
- <input name="proIds" value="2" type="checkbox">
- </td>
- <td>JavaWeb案例</td>
- </tr>
- <tr>
- <td>
- <input name="proIds" value="3" type="checkbox">
- </td>
- <td>SSM框架实战</td>
- </tr>
- </table>
- <input type="submit" value="提交商品"/>
- </form>
- </body>
- </html>
- @Controller
- public class ProductController {
- // 获取商品列表
- @RequestMapping("/getProducts")
- public void getProducts(String[] proIds) {
- for (String proId : proIds) {
- System.out.println("获取到了Id为"+proId+"的商品"); }
- }
- }
- 获取到了Id为1的商品
- 获取到了Id为2的商品
- 获取到了Id为3的商品
从图中所示的打印信息可以看出,程序打印出了提交的商品,这表明getProducts()方法获取到了客户端请求中的参数proIds的值,并将请求参数中多个同名的proIds参数值全部存储在了getProducts()方法的proIds形参中,实现了数组的数据绑定。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。