@RequestMapping
⽤来注册接⼝的路由映射。当⽤户访问⼀个 url 时,将⽤户的请求对应到程序中某个类的某个⽅法的过程就叫路由映射。
@Controller //类注解不能忘
@RequestMapping("/webcontroller")
public class WebController {
@RequestMapping("/sayhi")
public String sayHi() {
return "Hi~";
}
}
通过输入网址localhost:8080/webcontroller/sayhi就可以访问到。但是实际上你看到的又不一样。
对于上述的情况,在确定你的URL正确的情况下,我们需要另外加一个注解:@ResponseBody,加在类上。就可以让页面打印出来Hi~。
@ResponseBody
@ResponseBody的作用是将Java对象转为某种格式的数据,用来返回JSON数据或者XML数据。SpringMVC模型如下:
没有加这个注解的时候,Controller返回的数据将经过View,经过View转发后返回给客户端,而加了注解,相当于将数据直接返回给客户端。View表示视图的意思,也就是说,如果没有加该注解,View希望拿到一个html页面。
现在写一个简单的html页面,后端返回该页面。看看没有加@ResponseBody:
@Controller
// @ResponseBody
@RequestMapping("/webcontroller")
public class WebController {
@RequestMapping("/sayhi")
public Object sayHi() {
return "/index.html";
}
}
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X