Я пытаюсь вызвать методы для объектов веб-контекста, таких как #request и #response в моих шаблонах в thymeleaf 3.0.3 и Spring Boot 1.5.1.Проблемы, вызывающие методы в объектах веб-контекста в шаблоне thymeleaf
Я постоянно получаю ошибки как это:
org.springframework.expression.spel.SpelEvaluationException: EL1011E: Метод вызова: Пытались вызвать метод метод (java.lang.String) на несуществующий объект контекста
Вот контроллер:
@Controller
public class Controller {
@RequestMapping(method = RequestMethod.GET, value = "/endpoint", produces = "text/html")
public String customerServiceSignin(Model uiModel, HttpServletRequest request) {
uiModel.addAttribute("attr1", true); // show proper header
uiModel.addAttribute("attr2", false);
return "template";
}
и шаблон:
<html xmlns:th="http://www.thymeleaf.org">
<div>
<div style="...">
<div class="errorblock" th:unless="${#strings.isEmpty(#request.getAttribute('some_attr'))}" th:utext="${#request.getAttribute('some_other_attr')}"></div>
<form name='f' action="action" method='POST'>
<table>
<tr>
<td>User:</td>
<td><input type='text' name='username' value="" />
</td>
</tr>
<tr>
<td>Password:</td>
<td><input type='password' name='password' />
</td>
</tr>
<tr>
<td><input name="submit" type="submit" value="submit" />
</td>
<td><input name="reset" type="reset" />
</td>
</tr>
</table>
</form>
</div>
</div>
</html>
Это один из примеров, но в любом месте я пытаюсь сделать это, я получаю эти ошибки. Есть ли часть, которую мне не хватает?
Правильно, но почему? В документации делается ссылка на #request, а не на #httpServletRequest. –
Это зависит от версии тимелеафа. В версии 2 это выглядит как #httpServletRequest: http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#expression-basic-objects и на версии 3 #request: http: //www.thymeleaf. org/doc/tutorials/3.0/usingthymeleaf.html # expression-basic-objects - однако вы утверждаете, что уже используете thymeleaf 3, поэтому я не уверен в этой проблеме. Может быть, вы используете более старую версию, чем вы думаете? – eis