1、 RequestParam注解
作用:把请求中的指定名称的参数传递给控制器中的形参赋值
属性 :
value:请求参数中的名称
required:请求参数中是否必须提供此参数,默认值是true
@Controller
public class Controller01 {@RequestMapping("/hello2")public String getRequestParam(@RequestParam(name="username") String name){System.out.println("第一个springmvc程序");System.out.println(name);return "success";}
}
2、RequestBody注解
作用:用于获取请求体的内容(注意:get方法不可以)
属性 :required:是否必须有请求体,默认值是true
代码:
<form action="hello" method="post">姓名:<input type="text" name="name"/><br>年龄:<input type="text" name="age"/><br>生日:<input type="text" name="date"><br/><input type="submit" value="提交"></form>
@Controller
public class Controller01 {@RequestMapping("/hello")public String Hello(@RequestBody String body){System.out.println("第一个springmvc程序");System.out.println(body);return "success";}}
输出结果:
第一个springmvc程序
name=%E5%8F%B6%E6%88%90%E6%89%AC&age=21&date=2021-04-14
3、ModelAttribute注解
应用场景
当提交表单数据不是完整的实体数据时,保证没有提交的字段使用数据库原来的数据。
作用
出现在方法上:表示当前方法会在控制器方法执行前线执行。
<form action="modelAttribute" method="post">姓名:<input type="text" name="name"/><br>年龄:<input type="text" name="age"/><br><input type="submit" value="提交">
</form>
controller类:
修饰的方法有返回值
@Controller
public class Controller01 {@RequestMapping("/modelAttribute")public String modelAttribute(User user){System.out.println("第一个springmvc程序");System.out.println(user);return "success";}@ModelAttributepublic User method(String name){User u = new User();u.setName(name);u.setAge(20);u.setDate(new Date());return u;}
}
前页面提交的name和age有值,但是日期是null,所以@ModelAttribute注释的方法就可以在对这个日期附上值,在把对象u返回到控制器,属性值。
出现在参数上:获取指定的数据给参数赋值
修饰的方法没有返回值
@Controller
public class Controller01 {@RequestMapping("/modelAttribute")public String modelAttribute(@ModelAttribute("user") User user){System.out.println("第一个springmvc程序");System.out.println(user);return "success";}@ModelAttributepublic void method(String name, Map<String,User>map){User u = new User();u.setName(name);u.setAge(20);u.setDate(new Date());map.put("user",u);}}
在参数上,获取指定的数据参数赋值给User user。