這裏數組主要以Integer和String爲例
1、不使用ajax提交的數組(使用name屬性)
前端jsp代碼:
<br>
<label>數組</label>
<form action="arrayto.do" method="post">
<label>array1</label> <input type="text" id="array1" name="ss">
<label>array1</label> <input type="text" id="array1" name="ss">
<label>array1</label> <input type="text" id="array1" name="ss">
<label>array1</label> <input type="text" id="array1" name="ss">
<input type="submit" >
</form>
<br>
後臺Controller代碼:
@RequestMapping(value="arrayto.do")
@ResponseBody
public String arrayto( Integer ss[]){
for(Integer s :ss)
System.out.println(s);
return "y";
}
這裏同樣是使用文本標籤屬性name來作爲數據綁定的依據,根據jsp頁面中name值(”ss”)與後臺一樣數組名就完成數據綁定。使用這種方法最簡單實現數據綁定。
2、使用ajax提交數組
前端jsp頁面代碼:
<label>ajax數組</label>
<label>array1</label> <input type="text" id="a1" name="ss">
<label>array1</label> <input type="text" id="a2" name="ss">
<label>array1</label> <input type="text" id="a3" name="ss">
<label>array1</label> <input type="text" id="a4" name="ss">
<input type="button" onclick="subArray()" value="提交" >
<br>
js文件代碼:
function subArray(){
var array=[];
var sh;
sh=$("input[name='ssajax']");
for(var i=0;i<sh.length;i++){
array.push(sh[i].value)
console.log("第"+i+" :"+array[i]);
}
array.push($("#a1").val());
array.push($("#a2").val());
array.push($("#a3").val());
array.push($("#a4").val());
$.ajax({
url:'array.do',
type:'get',
data:{ss:array},
success:function(){
alert("success");
},
error:function(){
alert("error");
}
});
後臺controller代碼:
@RequestMapping(value="array.do")
@ResponseBody
public String array(@RequestParam(value = "ss[]") String ss[]){
for(String s :ss)
System.out.println(s);
return "y";
}
這裏需要指出的是使用ajax傳輸的時候,使用json格式傳輸,需要在後臺指定綁定參數這裏使用@RequestParam(value=”ss[]”)來指明接收的數組參數名。還有一點就是js代碼中的ajax數據部分是{ss:array},使用json格式傳輸;並指定後來key值ss。到這裏就可以方便傳遞數組。