我是想將使用了formSelect插件的select框,將多選的數據通過數據表格重載(where)的方式發送到後端,綁定到接收對象內的一個屬性上。但是總是出現了這樣或者那樣的問題。
controller層接受數據的代碼
public void f1(HttpServletRequest request, HttpServletResponse response,
Form form) {
try {
Map<String, Object> map = new HashMap<String, Object>();
List<Form> result = Service.query(form);
map.put("count", result.size());
map.put("data", result);
respSuccessMsg(response, map, "");
} catch (Exception e) {
log.error("查詢信息異常,異常={}", e.getMessage(), e);
respErrorMsg(response, "查詢數據異常");
}
}
Form 的代碼定義一個list集合去接受前端傳遞的數組
private List<String> data;//比如是String類型的數組
html代碼:
<select name="select1" id="select1" xm-select="select1" xm-select-skin = "primary"> </select>
js代碼:
var value = formSelects.value("select1","name");
//根據官方的說明這樣取到的值是這種樣式的["asd","dss"],在請求的時候發送的數據是 para1[] "asd" 第二個是 para1[] "dss" 第三個是para2的值依次第四個是para3的值第五個是para4的值,但是controller無法接受 ["asd","dss"]這樣的值,controller只能接受這樣 "asd","dss" 的數據並且封裝成list,其他樣式會報錯,所以講這行代碼改爲如下
var value = formSelects.value("select1","nameStr");
//這樣就可以正常封裝成list數據啦
table.reload("dataList", {
url : "f1.do",//請求路徑
where : {
para1: value,
para2: $("#para2").val(),
para3: $("#para3").val(),
para4: $("#para4").val()
}
});