(一)
前台定义数组:var ids = "";
动态拼装:ids += $(this).val() + ",";
直接传递:"ids" : ids,
后台接受:
直接在方法里写:String ids
前台:
//修改状态
function test(){
//var ids = [];
var ids = "";
$('input[name="followTaskStatus"]').each(function(){
if($(this).prop('checked')){
ids += $(this).val() + ",";
//ids.push($(this).val());
}
})
$.ajax({
url: "<%=path%>/followtask/setStatus",
type: "POST",
dataType : 'json',//返回数据格式
async:true,//是否异步请求,true:异步,false:同步; 默认值: true
data: {
"ids" : ids,
//"names" : ids
},
success : function(result) {
if (result.success) {
// 提示信息 result.msg
showTip(result.msg);
// 刷新页面 拼装搜索条件
window.location.href = "<%=path%>/followtask/myFollowTaskSearch?search="
+ companyNo;
}
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
window.location.href = '<%=path%>/common/goErrorPage';
}
});
}
后台:action
@Log
@RequestMapping("setStatus")
@ResponseBody
public Map<String, Object> setStatus(String ids) throws Exception {
followTaskService.updateStatus(ids);
//用于向前台传信息
Map<String, Object > map = new HashMap<String, Object>();
map.put("msg", "状态修改成功");
map.put("success", true);
return map;
}
service:按“,"拆分,赋给string[],我这里是多个参数,放到了map里。
@Override
public void updateStatus(String ids) throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
String[] leadsIds = ids.split(",");
map.put("ids", leadsIds);
map.put("followTaskStatus", "1");
map.put("followTaskUpdateDate", new Date());
map.put("followUpdateOperatorNo", ContextUtil.getOperator()
.getOperatorNo());
followTaskMapper.updateStatus(map);
}
mapper.xml文件:
<!-- 修改状态 addBy zhangjm 2015-04-17 -->
<update id="updateStatus" parameterType="Map">
update T_Follow_Task
set follow_task_status = #{followTaskStatus,jdbcType=CHAR},
follow_update_operator_no = #{followUpdateOperatorNo,jdbcType=VARCHAR},
follow_task_update_date = #{followTaskUpdateDate,jdbcType=TIMESTAMP}
where follow_task_no in
<foreach item="item" collection="ids" open="(" separator=","
close=")">
#{item}
</foreach>
</update>
(二):
前台数组定义:var ids = [];
向数组赋值:ids.push($(this).val());
传值:"ids" : ids,(同上)
前台:将上面的//打开,注掉它的上一行
后台:方法上不接受,直接
String[] ids = request.getParameterValues("ids[]");
@Log
@RequestMapping("setStatus")
@ResponseBody
public Map<String, Object> setStatus() throws Exception {
String[] ids = request.getParameterValues("ids[]");
//String[] names = request.getParameterValues("names[]"); 测试是否可传多个参数
followTaskService.updateStatus(ids);
//用于向前台传信息
Map<String, Object > map = new HashMap<String, Object>();
map.put("msg", "状态修改成功");
map.put("success", true);
return map;
}
service:传入
String[] ids
@Override
public void updateStatus(String[] ids) throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
map.put("ids", ids);
map.put("followTaskStatus", "1");
map.put("followTaskUpdateDate", new Date());
map.put("followUpdateOperatorNo", ContextUtil.getOperator()
.getOperatorNo());
followTaskMapper.updateStatus(map);
}
mapper.xml:同上。