1. @RequestMapping
在方法上只有 @RequestMapping 时,无论方法返回值是什么认为需要跳转
2. @ResponseBody
在方法上添加 @ResponseBody 恒不跳转
2.1 如果返回值满足 key-value 形式(对象或 map)
- 把响应头设置为 application/json;charset=utf-8
- 把转换后的内容输出流的形式响应给客户端.
@ResponseBody 底层使用 Jackson 进行 json 转换,包依赖:
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.8</version>
</dependency>
@Controller
public class AddUser {
@RequestMapping("addUser")
@ResponseBody
public User addUser(){
User user = new User();
user.setAge(12);
user.setName("哈哈哈");
return user;
}
}
执行结果:
2.2 如果返回值不满足 key-value, 如 String
- 把相应头设置为 text/html
- 把方法返回值以流的形式直接输出. 如果返回值包含中文,出现中文乱码
produces 表示响应头中 Content-Type 取值.
@Controller
public class AddUser {
@RequestMapping(value = "addUser",produces = "text/html;charset=utf-8")
@ResponseBody
public String addUser(){
return "似是而非或是世事可畏,有情有义又是有米无饮";
}
}
执行结果: