Прежде всего, возможно ли вообще использовать шаблонизатор Thymeleaf в приложении сервлета?Если нет, какой еще механизм шаблонов я могу использовать вместо JSP?
Если это возможно, вот моя проблема: я не могу получить доступ ни к атрибуту запроса, ни к параметру через th:text
.Ошибка: can't resolve 'name_of_attr/param'
.
Теперь к деталям.
Я создал очень простое приложение с сервлетами с одним сервлетом и одной HTML-страницей.Когда я запускаю приложение, мой HomeServlet
добавляет атрибут к запросу.Затем сервлет с помощью RequestDispatcher
перенаправляет мой запрос на страницу home.html
.Как вы можете видеть из кода ниже, я добавил ?test=param
к ссылке, так что теперь у нас также есть параметр.
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setAttribute("test", "test attribute");
req.getRequestDispatcher("/home.html?test=param").forward(req, resp);
}
Теперь, в home.html
я пытаюсь получить доступ к этим атрибутам иПараметр с использованием th:text
.
<body>
<h1>Test</h1>
<div th:text="${test}">...</div>
<div th:text="${param.test}">...</div>
</body>
Ничего не работает, и я получаю ошибку, упомянутую вверху.Может быть, я должен использовать какой-то другой тег Thymeleaf ... Пожалуйста, помогите мне:)
PS Я добавил зависимость тимелиста к своему pom.xml
:
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
Также я добавил следующую строкуна мою home.html
страницу: xmlns:th="http://www.thymeleaf.org"