标签:
web项目中,一般与后台进行交互,都使用ajax进行数据的提交
在数据提交的过程中,一般为提交数据对象。但是在通常过程中,会使用到传入一系列的数据。如批量删除。
我们可以通过传入数组来实现
有以下几种方式:
1、直接传入一个对象数组
var param = [];
param.push({"name":"ids", "value":id});
$.ajax({
type:"POST",
async:true, //默认true,异步
data:param,
url:"<%=request.getContextPath()%>/manageUser/delManageUser.action",
success:function(data){
}})
2、传入对象
var param = [];
param.push(id2);
param.push(id1);
$.ajax({
type:"POST",
async:true, //默认true,异步
data:{
ids : param
},
url:"<%=request.getContextPath()%>/manageUser/delManageUser.action",
success:function(data){}
})
针对于上面的传值,后台java进行取值。详见如下代码
@RequestMapping(value="delManageUser")
@ResponseBody
public String delManageUser(HttpServletRequest request){
try {
String[] ids = request.getParameterValues("ids[]");
for (String id : ids) {
//todo
}
}catch(Exception e){
}
}
通过如此取值,即可拿到数组。
下面整理下getParameter和getParameterValues的区间
一、 简单的对比
request.getParameter用的比较多,相对熟悉
request.getParameterValues(String name)是获得如checkbox类(名字相同,但值有多个)的数据。 接收数组变量 ,如checkobx类型
request.getParameter(String name)是获得相应名的数据,如果有重复的名,则返回第一个的值 . 接收一般变量 ,如text类型
例:
1. 三个名字相同的text标签
<input type="text" name="test" value="1" />
<input type="text" name="test" value="2" />
<input type="text" name="test" value="3" />
request.getParameterValues("test") ----------------- [1, 2, 3]
request.getParameter("test") ------------------ 1
${paramValues.test}
${param.test}
2. checkbox
<input type="checkbox" name="habit" value="read">看书
<input type="checkbox" name="habit" value="movie">电影
<input type="checkbox" name="habit" value="game">游戏
request.getParameterValues("habit")
二、与此相关的话题------隐含对象
1. JSP隐含对象(Implicit Object)
所谓隐含对象,是指当编写jsp网页时,不必做任何声明就可以直接使用的对象。 JSP2.0定义了九个隐含对象
request response pageContext session application out conifg page exception
这里只提一下request 和 response 两个对象
request 对象表示客户端请求的内容,比如我们从request中取得了用户输入的内容,实现了javax.servlet.http.HttpServletRequest接口
response对象表示响应客户端的结果。
上面我们使用了request的两个方法getParameter 和 getParameterValues,其实request还有其他几个比较重要的方法,这里只涉及几个获取请求参数的方法
String getParameter(String name) 取得name的参数值
String[] getParameterValues(String name) 取得所有name的参数值
Enumeration getParameterNames() 取得所有的参数名称
Map<String, String[]> getParameterMap() 取得request的所有参数的一个映射
//
//
response等其他几个隐含对象也有非常重要的身份,有机会专门整理一下,宣扬一下它们的显赫地位。
2. EL隐含对象
EL即Experssion Language,自JSP2.0后正式成为JSP的标准规范之一,支持Servlet2.4/JSP2.0的Container也就相应的支持EL语法。
一个常见的形式如,<c:out value="${ 3 + 7 * 4}" />
EL的隐藏对象有11个 PageContext PageScope RequestScope sessionScope applicationScope
param paramValues header headerValues cookie initParam
其中param 和 paramValues即对相应ServletRequest.getParameter(String name)和ServletRequest.getParameterValues(String name)
ajax传参数组之request.getParameterValues
标签:
原文地址:http://www.cnblogs.com/cbliu/p/4832383.html