@ResponseBody、@RequestMapping、@RestController注解
@ResponseBody注解作用于Controller层的方法之上,添加该注解之后将方法返回的对象写入到response对象的body区,通常用来返回JSON数据或是xml。
@RequestMapping注解也是作用于Controller层的方法之上,用于处理前端发送的get请求,浏览器默认是发送get请求。
@RestController注解标注在Controller类上,包含了@Controller注解和@ResponseBody注解。
注意:如果使用@RestController注解,则Controller中的方法无法返回jsp、html页面,配置的视图解析器 InternalResourceViewResolver将不起作用,返回的内容就是Return 里的内容。
下图为RestController注解的代码:
下图是注解的使用例子:
@RestController
public class UserController {
@RequestMapping("index")
public String indexTest(){
return "Hello World!";
}
}
效果图:
如图所示,所以想要方法返回的是jsp、html页面,则不要使用该注解,而是使用@Controller注解,且不要在方法上添加@ResponseBody注解,否则的话和@RestController注解效果一样。
下图是返回页面
@Controller
public class UserController {
@RequestMapping("/index")
public String indexTest(){
return "success";
}
}
效果图:
controller中方法的返回值是 “success”,又因为controller的方法是默认转发而不是重定向,所以地址栏是get请求地址,即在@RequestMapping注解中标注的请求名。
注意:如果页面出现404错误,可能是因为没有在pom.xml文件中引入模板引擎,我选择的是thymeleaf
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>