У меня есть приложение, работающее с Spring Boot 2.1.9.RELEASE, Thymeleaf и Boostrap 4.
1) У меня есть страница base.html, которая используется для шаблона:
<!DOCTYPE html>
<html lang="pt-br"
xmlns:th="http://www.w3.org/1999/xhtml"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
<!-- Meta tags Obrigatórias -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="../static/css/bootstrap.min.css" th:href="@{css/bootstrap.min.css}">
<link rel="stylesheet" href="../static/css/custom.css" th:href="@{css/custom.css}">
<title th:text="${config.dashboardTitle}">None</title>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12">
<th:block layout:fragment="page_content">PUT CONTENT HERE</th:block>
</div>
</div>
</div> <!-- /container -->
<script src="../static/js/jquery-3.3.1.slim.min.js" th:src="@{js/jquery-3.3.1.slim.min.js}"></script>
<script src="../static/js/popper.min.js" th:src="@{js/popper.min.js}"></script>
<script src="../static/js/bootstrap.min.js" th:src="@{js/bootstrap.min.js}"></script>
</body>
</html>
Как вы можете видеть на этой странице, у меня есть сценарии и таблица стилей для начала использования bootstrap 4, и все работает отлично.
2) У меня есть маршрут /register-application
, поэтому, когда пользователь вызывает этот маршрут, этот метод контроллера запускается:
@GetMapping("/register-application")
public String registerApp(Model model) {
loadDefaultModelConfig(model);
model.addAttribute("application", new ApplicationMonitor());
return "register-application";
}
Мой register-application.html
отображается с загрузкой, работающей очень хорошо, смотритестраница:
<!DOCTYPE html>
<html lang="pt-br"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{base}">
<head>
</head>
<th:block layout:fragment="page_content">
<div class="row">
<div class="col-md-12">
<form action="#" th:action="@{/register-application}" th:object="${application}" method="post">
<div class="form-group">
<label for="nameApp">Nome</label>
<input th:field="*{name}" type="text" class="form-control" id="nameApp" placeholder="Digite o nome da sua aplicação">
</div>
<button class="btn btn-outline-success" type="submit">Salvar</button>
</form>
</div>
</div>
</th:block>
</html>
Теперь пользователю необходимо обновить уже созданное приложение, поэтому он вызывает /register-application/{guid}
, и этот метод запускается:
@GetMapping("/register-application/{guid}")
public String registerApp(Model model, @PathVariable("guid") String guid) {
loadDefaultModelConfig(model);
model.addAttribute("application", applicationMonitorRepository.getOne(guid));
return "register-application";
}
Страница, отображаемая точноТо же самое (register-application.html
), но по какой-то причине загрузчик не отображается правильно, я получил много ошибок 404 в скриптах и таблицах стилей, которые необходимы для начальной загрузки.