Прежде всего, вы должны убедиться, что ваш шаблон Thymeleaf находится в правильном месте ( src / main / resources / templates ), и запомнить его имя (например, my-page).html ).
Следующим шагом является то, что вы должны правильно сказать Spring, что NumberController
на самом деле контроллер, используя аннотацию @Controller
:
@Controller
public class NumberController {
public int randomSkaicius() {
Random rand = new Random();
int skaicius = (int) (Math.random() * 50 + 1);
return skaicius;
}
}
После этого вы должны сообщить Spring, какой URL должен быть разрешен для конкретного метода контроллера, который возвращает модель + представление.Вы можете сделать это, используя аннотацию @GetMapping
, например:
@Controller
public class NumberController {
@GetMapping("/my/page")
public ModelAndView getMyPage() {
// TODO: Implementation
}
public int randomSkaicius() {
Random rand = new Random();
int skaicius = (int) (Math.random() * 50 + 1);
return skaicius;
}
}
В этом случае мы сообщаем Spring, что, как только кто-то запросит http://localhost:8080/my/page, метод getMyPage()
В этом методе мы должны вернуть объект ModelAndView
, который определяет несколько вещей:
- Имя представления, в вашем случае - имяшаблона Thymeleaf, что означает
my-page
(необходимо удалить часть расширения). - Название модели, которую вы можете свободно выбирать, например
randomSkaicius
. - Фактическое значение для модели, которое возвращает
randomSkaicius()
.
Например:
@Controller
public class NumberController {
@GetMapping("/my/page")
public ModelAndView getMyPage() {
return new ModelAndView("my-page", "randomSkaicius", randomSkaicius());
}
public int randomSkaicius() {
Random rand = new Random();
int skaicius = (int) (Math.random() * 50 + 1);
return skaicius;
}
}
Теперь, когда вы определили это, вы должны вернуться к своемуШаблон Thymeleaf, и где бы вы ни хотели использовать эту модель, вы должны ссылаться на нее правильно.Мы назвали его "randomSkaicius"
в контроллере, так что мы можем поместить что-то подобное в наш шаблон Thymeleaf:
<span th:text="${randomSkaicius}"></span>
Мы используем th:text
, чтобы сказать Thymeleaf разрешить эту часть как внутренний текстэтот элемент.Затем мы использовали ${randomSkaicius}
для ссылки на модель, которую мы определили ранее в контроллере.