【问题标题】:Thymeleaf + Spring. Using an object method instead another block in the form百里香+春天。使用对象方法而不是表单中的另一个块
【发布时间】:2019-09-17 13:28:36
【问题描述】:

我有一个用 Thymeleaf + Spring 构建的典型 updateUser 表单。我可以列出用户角色,但我试图将它们放入选择框组件中。我正在为这条线苦苦挣扎:selected="${user.hasRole(role.role)}"。现在,我知道这个组件可以工作,这只是访问一个布尔函数来启用它的问题。我正在尝试使用 select th:object 引用表单对象的函数。我的语法不起作用。我也尝试访问该函数,就像以前的输入标签一样(仅使用没有对象本身的名称。即用户名或在本例中为 hasRole()。这也不起作用。

<form th:object="${user}"
th:action="@{'/admin/usermanagement/adduser'} " method="post">

    <div class="row">
        <div class="col-md-3 form-group">
            <label>Username:</label> <input type="text" class="form-control"
                th:field="*{username}" />
        </div>
    </div>
    <div class="col-md-3">
        <h5>Roles :</h5>
    </div>

    <select class="js-example-basic-multiple" style="width: 75%"
        name="froles" id="froles" multiple="multiple">
        <option th:each="role : ${roles}" th:value="${role.role}" 
        th:selected="${user.hasRole(role.role)}"
        th:text="${role.role}"></option>
    </select>

    <button type="submit" class="btn btn-primary">Submit</button>

【问题讨论】:

    标签: spring forms thymeleaf


    【解决方案1】:

    其实我的问题是类型。 th:selected="${user.hasRole(role.role)}" 是一个字符串,应该是 th:selected="${user.hasRole(role)}"。我在域对象中有这两种方法,所以很好。

    th:value="${role.role}" 对于持久性是错误的。我想返回角色,但在使用 role.role 时收到以下错误消息 代码 [user.roles,roles];论据 [];默认消息[角色]];默认消息[无法将“java.lang.String”类型的属性值转换为属性所需的“java.util.List”类型

    当我使用“${role}”时出现 Java 空异常

    【讨论】:

      猜你喜欢
      • 2017-08-02
      • 1970-01-01
      • 2015-12-09
      • 1970-01-01
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 2018-11-27
      • 2018-05-19
      相关资源
      最近更新 更多