使用来自百里香的sp​​ring-el调用一个带变量的方法

时间:2015-07-21 07:41:25

标签: spring-mvc thymeleaf spring-el

我有这样的事情:

<form action="/" th:object="${index}">
<ul class="error" th:if="${#fields.hasAnyErrors()}" th:remove="all-but-first">
<li th:each="error : ${#fields.detailedErrors()}" th:utext="${index.fieldErrorText(error)}">DETAILED ERROR</li>
</ul>
</form>

调用$ {index.fieldErrorText(error)}工作正常,但我想更进一步。因为我有th:object =“$ {index}”我希望能够做到这样的事情:

*{fieldErrorText(error)}

但在这种情况下,它会查找索引上的错误,而不是来自th:每个变量,并且无法找到“属性或字段'错误”。

我尝试了其他组合:* {fieldErrorText($ {error})}(意外的令牌。预计'rparen())'但是'lcurly({)'),* {fieldErrorText(__ $ {error} __ )}(无法处理(241)'ñ';似乎做了一个toString或者什么)和* {fieldErrorText(__ error__)}(找不到属性或字段'错误'。

有没有人知道这种情况的正确语义?

1 个答案:

答案 0 :(得分:0)

试试这个

 *{fieldErrorText(__${error}__)}

根据文档,您需要进行一些预处理。

http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#preprocessing