【问题标题】:Spring Thymeleaf how can I save a spcific value in database using select and option html tagsSpring Thymeleaf 如何使用 select 和 option html 标签将特定值保存在数据库中
【发布时间】:2018-02-17 03:50:48
【问题描述】:

我的数据库 (mysql) 中有一个作业表。该表包含一个 id、一个 varchar 标题(管理员、项目负责人等)和一个 varchar 角色列。角色列是spring security在登录过程中使用的,可以有ROLES_ADMINROLES_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 并保存它们

【问题讨论】:

    标签: html mysql spring thymeleaf


    【解决方案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 一个特定的值。
    猜你喜欢
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多