如何取消 Thymeleaf 中输入字段的默认值?

Posted

技术标签:

【中文标题】如何取消 Thymeleaf 中输入字段的默认值?【英文标题】:How to unescape a default value of an input field in Thymeleaf? 【发布时间】:2021-01-06 10:38:02 【问题描述】:

我将模型对象传递给要在表单中使用的视图。尽管如此,我需要取消其中一个参数,当我使用 #uris.unescapePathSegment 时 Springboot 会抛出错误,因为它找不到相关的 bean

代码

<tr>
    <td colspan="8"><textarea rows="15" cols="150"
        th:field="$#uris.unescapePathSegment(excerpt.comments)" /></textarea></td>
    <td class="validation-comments" colspan="5"
        th:if="$#fields.hasErrors('excerpt.comments')"
        th:errors="$excerpt.comments"></td>
</tr>

错误

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name '#uris' available as request attribute

我应该如何解决这个问题?在现场使用之前,是否可以在 Thymeleaf 中取消转义参数,还是应该在控制器中取消转义?

【问题讨论】:

【参考方案1】:

th:field 不能是表达式。它只能是一个选择表达式 *... (see the docs on inputs),它指向表单支持 bean (th:object) 上的单个字段。如果您确实需要取消转义,那么在您到达 *excerpt.comments 时它应该已经取消转义。

【讨论】:

以上是关于如何取消 Thymeleaf 中输入字段的默认值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在表单输入字段中为密码分配默认值?

使用默认值声明 Thymeleaf 变量后如何对其进行算术运算?

如果表单输入没有明确使用它,如何设置Spring Form和Thymeleaf不更改作为模型属性添加的对象的字段?

当值为空时如何取消设置属性?

如何使日期输入字段的默认值成为普通文本? [复制]

SQL如何使用 alter column语句添加字段的默认值(defualt)?