Thymeleaf 資源和彈簧控制器

為了公開 Thymeleaf 模板,我們需要定義控制器。

例:

@Controller
@RequestMapping("/")
public class MessageController {
    
    @Autowired
    private MessageRepository messageRepository;
    
    @GetMapping
    public ModelAndView index() {
        Iterable<Message> messages = messageRepository.findAll();
        return new ModelAndView("index", "index", messages);
    }
    
}

這個簡單的控制器注入 MessageRepository 並將所有訊息傳遞給名為 index.html 的模板檔案,駐留在 src/main/resources/templates 中,最後在/index 上公開。

以同樣的方式,我們可以將其他模板放在模板資料夾中(預設為 spring to src/main/resources/templates),將模型傳遞給它們並將它們提供給客戶端。

其他靜態資源應放在以下資料夾之一中,預設情況下在 spring boot 中公開:

/META-INF/resources/
/resources/
/static/
/public/

Thymeleaf index.html 例子:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
    <head th:fragment="head (title)">
        <title th:text="${title}">Index</title>
        <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" href="../../css/bootstrap.min.css" />
    </head>
    <body>
        <nav class="navbar navbar-default navbar-fixed-top">
          <div class="container-fluid">
            <div class="navbar-header">
              <a class="navbar-brand" href="#">Thymeleaf</a>
            </div>
          </div>
        </nav>
        <div class="container">
            <ul class="nav">
                <li><a th:href="@{/}" href="messages.html"> Messages </a></li>
            </ul>
        </div>
    </body>
</html>
  • bootstrap.min.csssrc/main/resources/static/css 資料夾中。你可以使用語法 @{} 來獲取使用相對路徑的其他靜態資源。