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

  • 相比大家都知道的吧,前后端交互的方法,反过来调过去的传输的也就那么几个,下面我来对几个方法介绍 一下,比较复杂的方法,主要是对批量或者多参数传递的方法:
  • 后端设置的GET的方法的请求方式,这个时候我们只用通过的他的请求路径后面携带?+参数的这个方式传递参数,当然,你也可以采用在前段进行对象的封装,或者采用form表单的,最后进行serialize方法进行数据的格式化,将他放到请求路径后面,后端通过一个实体类或者请求参数进行接受就可以,大致的实现是这样的:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//前段的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表单进行格式化后进行传输,相对我们不需要对参数格式进行设置,下面的我介绍的比较复杂,当然它既可以传输多个对象,也可以传输单个对象,相对比较灵活一点:
  • 前段代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//我们使用的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必须要加的,这样就可以了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@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("失败");

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值