我正在尝试在应用程序中使用标签系统,在该系统中,可以通过在单个字段中输入输入来分配多个标签。类似于我们在SO上的内容。
我有一个Article
类,该类具有Set<ArticleTag> articleTags
作为属性。
我想到的唯一方法是使用@RequestParam
,然后在String
应用中拆分Spring boot
。我想知道,有没有办法将现有值放在自定义字段中?
到目前为止,我已经在下面获得了HTML
片段。
<div th:each="tag,i: ${article.articleTags}">
<input type="text" th:value="*{articleTags[__${i.index}__].tagName}" />
</div>
这将产生以下视图:
编辑1
值得一提的是,我在ArticleTag
类中有两个属性-ID
和tagName
。如果我执行<input type="text" th:value="${article.articleTags}"/>
,这将生成ID
值而不是tagName
的列表,这就是我想要的。
编辑2
<input th:each="arg: ${article.articleTags.value}" th:value="${arg.tagName}">
答案 0 :(得分:0)
覆盖toString()
类中的ArticleTag
方法,并设置为返回所需的值(tagName
)
@Override
public String toString() {
return this.getTagName();
}
然后,将列表设置为对象并将值传递给toString()
,这将返回一个数组,然后可以使用substring()
删除方括号。
<input class="form-control" id="category"
th:object="${article.articleTags}"
th:value="*{toString().substring(1, toString().length()-1)}"/>
最终结果