Описание:
В этом задании вы исследуете и используете различные типы локальных переменных в Thymeleaf в представлениях вашего приложения Spring. К ним относятся переменные, определенные непосредственно в представлении, переменные, переданные из контроллера, переменные, определенные в файле свойств для локализации, и статические переменные, определенные в классе конфигурации Thymeleaf.
-
Определение локальных переменных в представлении Thymeleaf:
-
Откройте файл представления Thymeleaf (например,
first.html). -
Изучите использование локальных переменных, определенных непосредственно в представлении.
-
В предоставленном примере кода:
<head th:with="title='Home'"> <meta charset="UTF-8"> <title th:text="${title}">Title</title> </head>
Локальная переменная
titleопределена внутри секции<head>HTML.
-
-
Локализация переменных из файла свойств:
-
Просмотрите конфигурацию бина
MessageSourceв вашем классе конфигурации Thymeleaf:@Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.addBasenames("classpath:local/practice"); messageSource.setDefaultEncoding("UTF-8"); return messageSource; }
-
Создайте файл
practice.propertiesв папке/src/main/resources/local/и добавьте следующее содержимое:```properties student.name=MyName student.group=PRE-121 message.welcome=Welcome, {0} message.info=Your Group is: {0} ```
Примечание о
{0}:-
Обозначение
{0}в локализационных сообщениях представляет собой заполнитель для переменной. Когда сообщение отображается, заполнитель{0}заменяется фактическим значением, предоставленным в сообщении. Например, в сообщенииWelcome, {0},{0}будет заменено значением переменной, таким как имя. -
Изучите использование локализованных переменных в представлении Thymeleaf с использованием синтаксиса
#{}. -
В предоставленном примере кода:
<h3 th:utext="#{message.welcome(#{student.name})}"></h3> <h4 th:utext="#{message.info(#{student.group})}"></h4>
Переменные
student.name,student.group,message.welcomeиmessage.infoвсе реализуют эту идею.
-
-
Статические переменные в классе конфигурации Thymeleaf:
-
В своем классе конфигурации Thymeleaf добавьте статические переменные с использованием метода
addStaticVariable:@Bean public ViewResolver thymeleafViewResolver() { ThymeleafViewResolver resolver = new ThymeleafViewResolver(); resolver.addStaticVariable("projectName", "Practice Tasks"); resolver.addStaticVariable("currentDateTime", LocalDateTime.now()); resolver.setTemplateEngine(templateEngine()); return resolver; }
-
Получите доступ к этим статическим переменным в представлении Thymeleaf с использованием синтаксиса
#vars. -
В предоставленном примере кода:
<h1 th:utext="${#vars.projectName}">Project Name</h1> <h2 th:utext="${#temporals.format(#vars.currentDateTime, 'dd.MM.yy HH:mm')}">Current Date and Time</h2>
-
теперь ваша страница должна выглядеть так:
