网站建设工作自策划实施以来,找外包做网站,做网站的dw全称是啥,企业网站效果图提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 案例1乘客个人信息方法1#xff1a;表单提交#xff0c;以字段数组接收方法2#xff1a;表单提交#xff0c;以BeanListModel接收方法3#xff1a;将Json对象序… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 案例1乘客个人信息方法1表单提交以字段数组接收方法2表单提交以BeanListModel接收方法3将Json对象序列化成Json字符串提交以List接收3.1 ListMapString,Object3.2 List User 案例 2后台接受数组和集合的案例基本user配置场景1 POST提交 -前端传数组后台如何接受[2021,2022]数组 String [ ] 接List String接 场景2 get提交 前端在URL里面传id1id2后台如何接受场景3 前端传对象集合后台如何接受场景4 综合情况 案例1
我要在一个表单里同时一次性提交多名乘客的个人信息到SpringMVC前端HTML和SpringMVC Controller里该如何处理
乘客个人信息
public class User {private Integer id;private String name;private String pwd;Overridepublic String toString() {return User{ id id , name name \ , pwd pwd \ };}// .......后面还有getter、setter方法省略了}方法1表单提交以字段数组接收
HTML代码如下 form action/user/submitUserList_1 methodpostID:input typetext nameidbr/Username:input typetext namenamebr/Password:input typetext namepwdbr/br/ID:input typetext nameidbr/Username:input typetext namenamebr/Password:input typetext namepwdbr/br/input typesubmit valuesubmit/formJava代码如下 RequestMapping(value /submitUserList_1, method {RequestMethod.POST})ResponseBodypublic String submitUserList_1(HttpServletResponse response,Integer[] id, String[] name, String[] pwd)throws Exception{String result ;if(id null || id.length 0){ return No any ID.中文; }ListUser userList new ArrayListUser();for (int i 0; i id.length; i ) {User user new User();user.setId(id[i]);user.setName(name[i]);user.setPwd(pwd[i]);userList.add(user);}result this.showUserList(userList);return result;}方法2表单提交以BeanListModel接收
HTML代码如下 form action/user/submitUserList_2 methodpostID:input typetext nameusers[0].idbr/Username:input typetext nameusers[0].namebr/Password:input typetext nameusers[0].pwdbr/br/ID:input typetext nameusers[2].idbr/Username:input typetext nameusers[2].namebr/Password:input typetext nameusers[2].pwdbr/br/input typesubmit valueSubmit/form除了刚才公用的User类还要封装一个User的容器类UserModel
public class UserModel {private ListUser users;public ListUser getUsers() {return users;}public void setUsers(ListUser users) {this.users users;}public UserModel(ListUser users) {super();this.users users;}public UserModel() {super();}}SpringMVC Controller方法 RequestMapping(value /submitUserList_2, method {RequestMethod.POST})ResponseBodypublic String submitUserList_2(UserModel users)throws Exception{String result ;ListUser userList users.getUsers();if(userList null || userList.size() 0){ return No any ID.中文; }result this.showUserList(userList);return result;}方法3将Json对象序列化成Json字符串提交以List接收
HTML代码
headtitlesubmitUserList_3/titlemeta http-equivcontent-type contenttext/html; charsetutf-8script languageJavaScript src/js/jquery.min.js /scriptscript languageJavaScript src/js/jquery.json.min.js /scriptscript typetext/javascript languageJavaScriptfunction submitUserList_3() {alert(ok);var customerArray new Array();customerArray.push({id: 1, name: 李四, pwd: 123});customerArray.push({id: 2, name: 张三, pwd: 332});$.ajax({url: /user/submitUserList_3,type: POST,contentType : application/json;charsetutf-8, //设置请求头信息dataType:json,//data: JSON.stringify(customerArray), //将Json对象序列化成Json字符串JSON.stringify()原生态方法data: $.toJSON(customerArray), //将Json对象序列化成Json字符串toJSON()需要引用jquery.json.min.jssuccess: function(data){alert(data);},error: function(res){alert(res.responseText);}});}/script
/headbodyh1submitUserList_3/h1input idsubmit typebutton valueSubmit onclicksubmitUserList_3();
/body3.1 ListMapString,Object RequestMapping(/createOrder)ResponseBodypublic int createOrder(RequestBody ListMapString,Object list ){if (list ! null list.size() 0){result this.showList(users);return result;}return 0;}3.2 List User
Java代码 RequestMapping(value /submitUserList_3, method {RequestMethod.POST})ResponseBodypublic String submitUserList_3(RequestBody ListUser users)throws Exception{String result ;if(users null || users.size() 0){ return No any ID.中文; }result this.showUserList(users);return result;}案例 2后台接受数组和集合的案例
基本user配置
首先我们模拟创建一个user的实例
Data
public class User {private String id;private String name;private Integer age;}创建一个公共的返回值的Result类
import lombok.Data;Data
public class ResultT {private static final long serialVersionUID 1L;private Integer code;private String msg;private T data;public static Result fail() {Result Result new Result();Result.setCode(1);Result.setMsg(服务器错误);return Result;}public static Result fail(String msg) {Result Result new Result();Result.setCode(1);Result.setMsg(msg);return Result;}public static T Result success(T data) {Result Result new Result();Result.setCode(0);Result.setData(data);return Result;}public static Result success() {Result Result new Result();Result.setCode(0);Result.setMsg(操作成功);Result.setData(success);return Result;}}场景1 POST提交 -前端传数组后台如何接受 [“2021”,“2022”] var ids [2021,2022];
$.ajax({type : POST,url: course/delete,contentType : application/json ,data: JSON.stringify(ids),success : function(data) {}
});
数组 String [ ] 接
RequestMapping(value /delete, method {RequestMethod.POST})
ResponseBody
public void delete(RequestBody String[] id) {for (String string : id) {System.out.println(string);}
}
List String接 PostMapping(/saveUserIds)public Result saveStrings(RequestBody ListString list) {logger.info(传入的参数是{},list);//模拟逻辑层做一个入参校验if (CollectionUtils.isEmpty(list)){return Result.fail();}return Result.success();} 场景2 get提交 前端在URL里面传id1id2后台如何接受
RequestParam或PathVariable前台可以直接URL中通过id1id2的方式入参后台直接通过数组或List的的方式来接收作为动态sql的入参使用动态sql的foreach语法 ApiOperation(通过alarmId删除报警记录)DeleteMapping(/delete/{alarmIds})public Result delete(ApiParam(报警记录id) PathVariable Long[] alarmIds){return alarmRecordService.deleteAlarmRecordByIds(alarmIds);}场景3 前端传对象集合后台如何接受
[{id:1,name:辰兮,age:22},{id:2,name:辰兮要努力,age:23}
]/*** 前端传对象集合 后端用集合接* param userList* return*/PostMapping(/saveList)public Result saveUserList(RequestBody ListUser userList) {logger.info(传入的参数是{},userList);//模拟逻辑层做一个入参校验if (CollectionUtils.isEmpty(userList)){return Result.fail();}return Result.success(); 场景4 综合情况 就是前端除了传一个集合外还要传一个字符串或者数字等属性 入参案例如下
{userList:[{id :1,name:辰兮,age:22},{id:2,name:辰兮要努力,age:23}],open:1
}再创建一个对象接受
/*** program: demo* description: 用户对象接受类*/
Data
public class UserVo {private ListUser userList;private Integer open;
}/*** program: demo* description: 前后端传值交互案例*/
RestController
RequestMapping(/user)
public class UserController {//打印日志private static final Logger logger LoggerFactory.getLogger(UserController.class);/*** 业务场景前端传一个数组➕一个字符串或者数字等* param userVo* return*/PostMapping(/saveUserVo)public Result saveUserVoList(RequestBody UserVo userVo) {logger.info(传入的参数是{},userVo);return Result.success();}
}我们可以debug查看一下入参很清晰的可以看到前端传入的参数