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";
}
@ModelAttribute
public 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";
}
@ModelAttribute
public 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。