您的位置:首页 > 科技 > 能源 > Spring MVC数据绑定和响应——复杂数据绑定(一)数组绑定

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

2024/7/6 19:31:52 来源:https://blog.csdn.net/W_Fe5/article/details/139903425  浏览:    关键词:Spring MVC数据绑定和响应——复杂数据绑定(一)数组绑定

一、数组绑定的使用场景

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

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

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

public class Product {private String proId;        //商品idprivate 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;}
}

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

<%@ 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>

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

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

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

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

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

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com