我是想将使用了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()
}
});