thymeleaf - 将列表绑定到单个输入字段 - spring boot thymeleaf
问题描述
我正在尝试在我的应用程序中使用标签系统,可以通过在单个字段中输入输入来分配多个标签。类似于我们在 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
. 如果我做 a <input type="text" th:value="${article.articleTags}"/>
,这会产生一个ID
值列表 not tagName
,这就是我所追求的。
编辑 2
<input th:each="arg: ${article.articleTags.value}" th:value="${arg.tagName}">
解决方案
覆盖类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)}"/>
最终结果
推荐阅读
- php - 当我单击标签内的文本时,我想将类别名称存储到会话变量中
- json - 在 Flutter 中解析复杂的 json 数据
- python - 当我在 python 中的 if 语句中组合按位和逻辑运算符时,出现语法错误,说明语法无效
- python-3.x - 如何将结果转换成表格-Python
- android - 找不到“com.android.support:”
- javascript - 如何使用 vanilla Javascript 动态更改内联 SVG 的颜色?
- flutter - Flutter/Dart - 获取 StreamBuilder
当价值改变时重建孩子 - java - Spring Boot 微服务加载不及时,第一次请求耗时过长
- java - 如何在 ec2-instance 中使用私有 ip 调用 api
- java - .exe 运行后立即关闭