一.SpringMVC接受参数
<form action="url" method="post"> <input type="text" name="id"/> <input type="text" name="name"/> <buttom>commit</buttom> </form>
/*** * 零散类型参数接收 * url?id=2&name=zhangsan&sex=true * @return */ @RequestMapping("/test") public String test(Integer id, String name, Boolean sex, @DateTimeFormat(pattern = "yyyy-MM-dd") Date bir){ System.out.println("id =="+id+"== 姓名 =="+name+"== 性别 =="+sex+"日期" +bir); return "index"; }
前端访问和后端打印结果,注:时间已特别定义格式为yyyy-MM-dd,所以浏览器访问时也需要按照特定格式;访问形式:
4.2 接受对象类型数据:前台传递的参数形式,只需要保证传递参数名和接收的参数名变量名一致即可,将自动封装。conteoller方法:
//接收对象类型的参数 @RequestMapping("/test1") public String test1(User user){ System.out.println(user); return "index"; }
如果对象中包含对象,前台访问时可标注对象。
访问形式:
4.3 接受数组或集合类型数据:将要接收数组作为控制器方法的参数声明即可;前端语法:要求前台传递的多个参数的参数名都要与接收的数组变量名一致,springMVC自动将多个变量名放入一个数组中,conteoller方法:
@RequestMapping("/test2") public String test2(String[] names){ for (String name:names) { System.out.println(name); } return "index"; }
访问形式:
注:form表单方式:
<form action="url" method="post"> <input type="text" name="names"/> <input type="text" name="names"/> <buttom>commit</buttom> </form>
注意:springMVC不允许直接接收集合类型参数,但是允许间接接收(将接收的集合放入自定义的对象中完成参数接收)
/*** * 接收集合类型的参数 * 将集合放入对象中接收 * @return */ @RequestMapping("/test3") public String test3(User user){ user.getLists().forEach(str -> System.out.println(str));//lamda表达式 return "index"; }