Spring Thymeleaf 如何使用 select 和 option html 标签将特定值保存在数据库中
Posted
技术标签:
【中文标题】Spring Thymeleaf 如何使用 select 和 option html 标签将特定值保存在数据库中【英文标题】:Spring Thymeleaf how can I save a spcific value in database using select and option html tags 【发布时间】:2018-02-17 03:50:48 【问题描述】:我的数据库 (mysql) 中有一个作业表。该表包含一个 id、一个 varchar 标题(管理员、项目负责人等)和一个 varchar 角色列。角色列是spring security在登录过程中使用的,可以有ROLES_ADMIN
和ROLES_USER
两个值。
我创建了一个编辑页面,管理员可以在其中编辑任何现有工作。我想要做的是将选择限制为用户和管理员,但选择标签应该显示管理员和用户,而不是显示 ROLE_ADMIN 和 ROLE_USER。
类似这样的:
选项 1 显示文本管理员将 ROLE_ADMIN 保存在数据库中
选项 2 显示文本用户将 ROLE_USER 保存在数据库中
目前我的标签看起来像这样
<select name="role">
<option th:each="job: $jobs" th:value="$job.role" th:text="$job.role"></option>
</select>
它显示 ROLE_USER 和 ROLE_ADMIN 并保存它们
【问题讨论】:
【参考方案1】:你应该改变
th:text="$job.role"
进入您要显示的文本并保持th:value
原样。
为此,例如,您可以在 Job 类中创建一个 getter
public String getDisplayRole()
return ""; // split role on _, take second element and make title case for example
然后th:text="$job.displayRole)"
【讨论】:
所以th:text="$Admin"
?那不是把 Admin 保存在数据库里吗?
不,th:value
中的值应该保存到数据库中
不起作用。选择显示为空白,当我编辑时它不会改变任何内容
控制台有什么错误吗?是否调用了 getDisplayRole() 方法?
没有错误。它是。知道如何给 th:value 一个特定的值。以上是关于Spring Thymeleaf 如何使用 select 和 option html 标签将特定值保存在数据库中的主要内容,如果未能解决你的问题,请参考以下文章
Thymeleaf + Spring (not Boot) - 如何显示来自 messageSource 的消息
如何使用 Thymeleaf 配置 Spring Boot 并使用 sec:authentication 标签
Spring-Thymeleaf 如何使用 EL 调用来自 Bean 的操作方法
如何在 Spring Boot 中使用 Thymeleaf 保存角色?