- 前台向后台传值:
①同名参数传递:form表单中提交input,Controller方法入参中,直接以同名参数获取
②不同名参数传递:from表单提交input,Controller方法入参中需要使用注解:@RequestParam(“loginName”) String name,这样就把前台loginName的值放到name里面了
注意:若前台传的参数为null或者””,则使用基本数据类型就会报错,包装类则没有问题
③对象传递:表单中是name值为对象的属性值,即使该属性为类类型,是需要在表单中使用.级联即可,例如用户类中address属性的类型是地址类,则表单中可以写成address.name
④List集合传递:表单中input的name属性需要指定下标例如users[0].firstName,name=”users[1].firstName,Controller方法中跟对象传递参数一致,因为使用到了下标,所以在动态添加行或者删除行时特别需要注意:假如下标第一个0,第二个是9,Spring会创建一个大小为10的List其中2到8的值会是null
⑤set集合传递:与List类似,表单与List一致,区别在于绑定Set数据时,必须先在Set对象中add相应的数量的模型对象。也就是说Set属性所在的类的构造函数中添加与表单对应数量的元素
⑥Map集合传递:表单中与Set相似,name属性值为users[‘x’].firstName, Controller中与List一致
参照:https://blog.csdn.net/pangliang_csdn/article/details/52486787 - 后台向前台传值:
①使用Model的addAttribute(“mode”, “modeValue”)方法
②使用Request的setAttribute(“request”, “requestValue”)方法
③使用Map的put(“map”, “mapvalue”); 方法
④使用ModelAndVIew
1. ModelAndView mav = new ModelAndView("user");
2. mav.addObject("ModelAndView", "ModelAndViewValue");
3. mav.setViewName("user");
参照:https://blog.csdn.net/zuishengmengsi_/article/details/52619003