前台传输到后台数据的方式总结

  • 相比大家都知道的吧,前后端交互的方法,反过来调过去的传输的也就那么几个,下面我来对几个方法介绍 一下,比较复杂的方法,主要是对批量或者多参数传递的方法:
  • 后端设置的GET的方法的请求方式,这个时候我们只用通过的他的请求路径后面携带?+参数的这个方式传递参数,当然,你也可以采用在前段进行对象的封装,或者采用form表单的,最后进行serialize方法进行数据的格式化,将他放到请求路径后面,后端通过一个实体类或者请求参数进行接受就可以,大致的实现是这样的:
//前段的js代码
//报告的导出
	$("#export").click(function(){
	//这个是一个form表单对象
		var condition=$("#searcherCondition").serialize();
		//实现一个普通的请求
		$.download(
				"${ctx}/ReportManager/exportExcel",	
				condition,
				"Get"
		);
	});
//后端的java代码:
//这个是使用easypoi的到处excel的数据,所以需要的参数比较多,但是主要的参数主要是那个实体类dto,完成参数接收。有人可能会疑惑为什么我采用requestMapping的注解,没有指定GEt或者post的请求方法:这里说明一下request不会区分post和get方法,而这个方法取决于前段的请求。
  @RequestMapping("exportExcel")
    public void exportExcel(ModelMap map, HttpServletResponse response, HttpServletRequest request,PhysicalExaminerDto physicalExaminerDto){
        PtYgbm00 principal = (PtYgbm00)SecurityUtils.getSubject().getPrincipal();
        physicalExaminerDto.setEmployeeId(principal.getYgbh00().toString());
        physicalExaminerDto.setHospitalNo(principal.getYybh00());
        List<PhysicalExaminerPoi> examinerPOI = physicalExaminerService.getExaminerPOI(physicalExaminerDto);
        ExportParams exportparams = new ExportParams("体检者","体检者");
        map.put(NormalExcelConstants.DATA_LIST, examinerPOI);
        map.put(NormalExcelConstants.CLASS, PhysicalExaminerPoi.class);
        map.put(NormalExcelConstants.FILE_NAME, "体检者信息");
        map.put(NormalExcelConstants.PARAMS, exportparams);
        PoiBaseView.render(map, request, response, NormalExcelConstants.EASYPOI_EXCEL_VIEW);

    }
  • 上面的主要是通过form表单进行格式化后进行传输,相对我们不需要对参数格式进行设置,下面的我介绍的比较复杂,当然它既可以传输多个对象,也可以传输单个对象,相对比较灵活一点:
  • 前段代码:
//我们使用的bootstrap的datatable的,我们直接通过他封装的方法直接获取列表数据
  var data= $('#loseTable').bootstrapTable('getData');

       if (data =='') {
           layer.msg('没有体检者');
           return ;

       }
       //封装数据
      
      //创建一个数组
        var array =new Array();
         //对数据进行封装遍历
        $.each(data, function (index,value) {
             //创建一个信息对象,来接受表单信息的所有的信息
            var messageDto = {};
            messageDto.content=value.DXNR00;
            messageDto.telephone=value.DH0000;
            //放入到数组
            array.push(messageDto);
        });
        //对数组进行数据格式化
        var result=JSON.stringify(array);
        //这里必须强调一下我们只能通过ajax进行访问,其他的方式,都不能成功。
       //发起请求
        $.ajax({
            url:"${ctx}sendMesage/batchSendMessage",
            type:"post",
            async: false,
            //这里强调回数据格式为json
            dateType:'json',
            //强调内容类型
            contentType:'application/json',
            data :result,
            //返回结果
            success:function (data) {
                if (data ==null||data.success ==false ){
                    layer.msg("发送失败!!");
                    return;
                }

                layer.msg('重发成功');


            }


        })
        
  • 后端的java代码:这里是批量的发送短信的接口。这里值得强调的是那个注解@SpringBody必须要加的,这样就可以了。
 @RequestMapping("batchSendMessage")
    @ResponseBody
    public ResultMsg batchSendMessage(@RequestBody List<MessageDto> messageDto)throws  Exception{
        boolean interfaceInfo=false;
        Map<Object,Object > map =new HashMap<>();
        for(MessageDto ms:messageDto){

        interfaceInfo = baseMessage.getInterfaceInfo(ms);
       }
        if (interfaceInfo){
            return  ResultMsg.ok();
        }
        return  ResultMsg.fail("失败");

    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值