前端到后端数组传值

来源:互联网 发布:杰克伦敦广场重要数据 编辑:程序博客网 时间:2024/06/03 16:49

初学java,遇到项目中的一个问题记录下。

因为在项目中做了一个复选框,前端用的jqgrid的postData传值和ajax传值

下面放代码:

HTML:


<input type="checkbox" id="1" value="0" v-model="orgno"><label for="1"></label><input type="checkbox" id="2" value="1" v-model="orgno"><label for="2"></label><input type="checkbox" id="3" value="2" v-model="orgno"><label for="3"></label><input type="checkbox" id="4" value="3" v-model="orgno"><label for="4"></label><input type="checkbox" id="5" value="4" v-model="orgno"><label for="5"></label><input type="checkbox" id="6" value="5" v-model="orgno"><label for="6"></label><input type="checkbox" id="7" value="6" v-model="orgno"><label for="7"></label><input type="checkbox" id="8" value="7" v-model="orgno"><label for="8"></label><input type="checkbox" id="9" value="8" v-model="orgno"><label for="9"></label><input type="checkbox" id="10" value="9" v-model="orgno"><label for="10"></label><table id="jqGrid"></table><div id="jqGridPager"></div>

用的是Vue v-model将值绑定在orgno的数组下

js:

var vm = new Vue({el:'#rrapp',data:{orgno:[],showList: true,title: null,stuffstatisticList: {}},methods: {query: function () {vm.reload();},output:function(){$.ajax({type: "POST",url: baseURL + "sys/stuffstatistic/output",dataType:"json",async: false,data: {"orgno[]":vm.orgno,"year":vm.year,"month":vm.month},success: function(r){if(r.code === 0){alert('导出成功');}else{alert(r.msg);}}});},reload: function (event) {vm.showList = true;var page = $("#jqGrid").jqGrid('getGridParam','page');var list=JSON.stringify(vm.orgno);$("#jqGrid").jqGrid('setGridParam',{postData:{'orgno':list},                page:page            }).trigger("reloadGrid");}}});
因为postData 传的值必须是string类型的,直接传值为空值,所以先用JSON.stringify进行转化,或者用ajax进行传值,因为我想传多个值所以async:false;将异步方式转化为同步(具体有没有影响还不知道)。

postData的controller层:

public R list(@RequestParam Map<String, Object> params) {        //查询列表数据        Object temp=params.get("orgno");        System.out.println(temp);        JSONArray arry = JSONArray.fromObject(params.get("orgno"));        List<String> rsList = new ArrayList<String>();        for (int i = 0; i < arry.size(); i++)        {            String jsonObject = arry.getString(i);            rsList.add(jsonObject);        }        System.out.println(rsList);        params.put("orgno",rsList);        Query query = new Query(params);        List<StuffstatisticEntity> stuffstatisticList = stuffstatisticservice.queryList(query);        int total = stuffstatisticservice.queryTotal(query);        PageUtils pageUtil = new PageUtils(stuffstatisticList, total, query.getLimit(), query.getPage());        return R.ok().put("page", pageUtil);    }

controller层中接受的JASON类型的数组,必须经过解析成String类型才能给mybatis的dao层进行查询


ajax传值的controller

  @RequestMapping("/output")    public R outputexcel(@RequestParam( "orgno[]") String[] orgno ,@RequestParam String year,@RequestParam String month){        HashMap params = new HashMap();       params.put("year", year);       params.put("month",month);       params.put("orgno",orgno);        List<StuffstatisticEntity> stuffstatisticList = stuffstatisticservice.queryList(params);//....}



 
原创粉丝点击