旅鸟

导航

3. 添加多个控制器

在上篇的App中index方法表示网站的首页,而遵守单一职责原则,最好不要在App中添加其他接口,最好引入专门的控制器来提供服务,操作如下:
1. 添加HomeController控制器

2. 在HomeController类上添加@Controller注解和RequestMapping("/home")注解,并添加index方法;

package com.lvniao.blog.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/home")
public class HomeController {

    @RequestMapping("/")
    public String index(Model model) {
        model.addAttribute("hello", "Hello, main index!");
        return "home/index";
    }
}
HomeController

因为HomeController类所在的包是App类所在包下的controller包下的,而@SpringBootApplication注解使用@ComponentScan注解的,所以项目启动后会自动扫描所在报下的包,这样也就能后发现被Controller注解的HomeController;而通过@RequestMapping("/home")注解的类,其下的方法的路径也就自动添加了/home前缀,这样实际上访问index的url路径也就是:http://localhost:8080/home/;而index方法返回的是"home/index",这样视图解析器就会在template/home目录下找视图文件。相关视图文件如下:

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <title>vue demo</title>
 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 6 </head>
 7 <body>
 8     <h1 th:text="${hello}"></h1>
 9 </body>
10 </html>
index.html

这样添加控制器是遵守springboot约定的,所以除了@Controller类外无需其他配置就可以添加控制器,也就大大便利了开发。

posted on 2018-05-14 23:39  旅鸟  阅读(199)  评论(0编辑  收藏  举报