# 一、控制器模式
在实际的项目开发中,控制器的路径可能会有许多个。在进行控制器编写的时候,也会有以下两种运行模式。
- 控制器跳转模式:可以使用@Controller注解定义,如果要实现Restful显示,也可以联合@ResponseBody注解一起使用。
- Restful显示:可以使用@RestController注解,里面所有路径访问的信息都以Restful形式展示。
# 二、使用Restful风格
@RestController
public class MessageController {
@RequestMapping("/")
public String home(){
return "www.xxl.cn";
}
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
此时的控制器程序类上使用了@RestController注解,这样就可以避免在方法上使用@ResponseBody注解。此时,MessageController类中的所有映射路径都会以Restful形式展示。
提示:Restful是SpringCloud技术的实现核心。
在控制器里面一旦使用了@RestController注解,则意味着所有方法都将以Restful风格展示。这种做法未必适合于SpringBoot项目,因为在很多时候需要通过控制器跳转到显示层页面,而Restful是SpringCloud技术的实现关键。
# 三、地址传递参数
也可以进行参数的接收处理。传递参数到控制器中最简单的做法是使用地址重写传递“访问路径?参数名称=内容
”(只支持GET请求
),在MessageController控制器程序类之中扩充一个新的echo()方法。
@GetMapping("/echo")
public String echo(String msg) {
return "【echo】" + msg;
}
1
2
3
4
2
3
4
此时如果要进行该路径的访问,则可以直接通过地址栏传递参数(http://localhost:8080/echo?msg=www.xxlcn),并且参数的名称应该默认使用msg。
# 四、@PathVariable
由于SpringBoot支持Restful风格处理,所以参数的接收可以采用路径参数的形式完成,但是需要在控制器方法的参数声明上使用@PathVariable注解与访问路径的参数进行关联。(只支持GET请求
)
@GetMapping("/echo/{message}")
public String echo2(@PathVariable("message") String msg) {
return "【echo】" + msg;
}
1
2
3
4
2
3
4
通过地址传递参数,地址设置为http://localhost:8080/echo/www.xxl.cn