文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SpringMVC怎么接收参数各种场景

2023-06-25 11:56

关注

这篇文章主要讲解了“SpringMVC怎么接收参数各种场景”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringMVC怎么接收参数各种场景”吧!

表单提交

此处的表单时 -使用JSON.stringify()函数将数组转换成json类型提交后台,后台使用@RequestBody User user接受处理

页面js

//新增提交按钮$("#buildsubmit").click(function() {   var param = $(".form").serializeJson();   $.ajax({    type: 'post',    url: path + "/web/member/save.do",    contentType: "application/json",    dataType: 'json',    data: JSON.stringify(param),    success: function(data) {         },   });  } });

后端代码

@RequestMapping(value = "/save", method = RequestMethod.POST)public GeneralResponse save(@RequestBody @Valid MemberInsertDetail member, BindingResult bindingResult)   throws JsonProcessingException {  if (bindingResult.hasErrors()) {   throw new ErrParamException();  }  boolean flag = false;  flag = memberService.save(member);}

表单提交二

使用.serialize()方法 提交表单内容;

可以后台使用 request.getParamter("对应字段的name")获取参数;

也可以使用 Model mdel 的POJO接受。(name要一一对应起来)

页面JS

function sub(){ $.ajax({  type:"post",  url:"/restaurant/addEmployees.do",  data:$("#form").serialize(),  dataType :"json",  success:function(data){   if(!data.success){  } }); }

页面html代码:

<form action="" id="staff_form"><div class="addInfor"><input type="" name="phone" id="phone" value="" placeholder="请输入手机号"/><input type="" name="password" id="password" value="" placeholder="请输入密码"/><input type="" name="username" id="username" value="" placeholder="请输入姓名"/><input name="checkbox" value="chief_store_member" type="checkbox" ><label class="grey-font" >多店管理</label><input name="checkbox" value="branch_store_member" type="checkbox"><label class="grey-font" >单店管理</label></div><button type="button" class="mui-btn orange-btn" οnclick="sub();">确认</button></form>

后台代码接收方式一

含有单个的checkbox参数接收

@RequestMapping("/addEmployees")@ResponseBodypublic Result<Integer> addEmployees(HttpServletRequest request) {  String phone = request.getParameter("phone");  String password = request.getParameter("password");  String username = request.getParameter("username");  身份单checkbox接收。如果是复选框多个checkbox,则用数组String[] 接收。  String checkbox = request.getParameter("checkbox");}

后台代码接收方式二

@RequestMapping(value="/addCustomer",method=RequestMethod.POST)@ResponseBodypublic LogisticsResult addCustomer(@Valid CustomerInfo customer,BindingResult result ){        如果是复选框多个checkbox,则在pojo中 用与checkbox的name一样的 数组接收。        如: String[] checkbox;}

接收List<String>集合参数:

页面js代码:

var idList = new Array();  idList.push(“1”);   idList.push(“2”);   idList.push(“3”);  var isBatch = false;  $.ajax({      type: "POST",      url: "<%=path%>/catalog.do?fn=deleteCatalogSchemes",      dataType: 'json',      data: {"idList":idList,"isBatch":isBatch},      success: function(data){          …      },      error: function(res){          …      }  });

Controller方法:

@Controller  @RequestMapping("/catalog.do")  public class CatalogController {        @RequestMapping(params = "fn=deleteCatalogSchemes")      @ResponseBody      public AjaxJson deleteCatalogSchemes(@RequestParam("idList[]") List<String> idList,Boolean isBatch) {             …      }  }

接收List<User>、User[]集合参数:

User实体类:

public class User {          private String name;       private String pwd;      //省略getter/setter  }

页面js代码:

var userList = new Array();  userList.push({name: "李四",pwd: "123"});   userList.push({name: "张三",pwd: "332"});   $.ajax({      type: "POST",      url: "<%=path%>/catalog.do?fn=saveUsers",      data: JSON.stringify(userList),//将对象序列化成JSON字符串      dataType:"json",      contentType : 'application/json;charset=utf-8', //设置请求头信息      success: function(data){          …      },      error: function(res){          …      }  });

Controller方法:

@Controller  @RequestMapping("/catalog.do")  public class CatalogController {        @RequestMapping(params = "fn=saveUsers")      @ResponseBody      public AjaxJson saveUsers(@RequestBody List<User> userList) {          …      }  }

如果想要接收User[]数组,只需要把saveUsers的参数类型改为@RequestBody User[] userArray就行了。

接收List<Map<String,Object>>集合参数:

页面js代码(不需要User对象了):

var userList = new Array();  userList.push({name: "李四",pwd: "123"});   userList.push({name: "张三",pwd: "332"});   $.ajax({      type: "POST",      url: "<%=path%>/catalog.do?fn=saveUsers",      data: JSON.stringify(userList),//将对象序列化成JSON字符串      dataType:"json",      contentType : 'application/json;charset=utf-8', //设置请求头信息      success: function(data){          …      },      error: function(res){          …      }  });

Controller方法:

@Controller  @RequestMapping("/catalog.do")  public class CatalogController {        @RequestMapping(params = "fn=saveUsers")      @ResponseBody      public AjaxJson saveUsers(@RequestBody List<Map<String,Object>> listMap) {          …      }  }

接收User(bean里面包含List)集合参数:

User实体类:

public class User {      private String name;       private String pwd;      private List<User> customers;//属于用户的客户群      //省略getter/setter  }

页面js代码:

var customerArray = new Array();  customerArray.push({name: "李四",pwd: "123"});   customerArray.push({name: "张三",pwd: "332"});   var user = {};  user.name = "李刚";  user.pwd = "888";  user. customers = customerArray;  $.ajax({      type: "POST",      url: "<%=path%>/catalog.do?fn=saveUsers",      data: JSON.stringify(user),//将对象序列化成JSON字符串      dataType:"json",      contentType : 'application/json;charset=utf-8', //设置请求头信息      success: function(data){          …      },      error: function(res){          …      }  });

Controller方法:

@Controller  @RequestMapping("/catalog.do")  public class CatalogController {       @RequestMapping(params = "fn=saveUsers")      @ResponseBody      public AjaxJson saveUsers(@RequestBody User user) {          List<User> customers = user.getCustomers();          …      }  }

感谢各位的阅读,以上就是“SpringMVC怎么接收参数各种场景”的内容了,经过本文的学习后,相信大家对SpringMVC怎么接收参数各种场景这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯