胸腺+春天。使用对象方法而不是

时间:2019-09-17 13:28:36

标签: spring forms thymeleaf

我有一个使用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>

1 个答案:

答案 0 :(得分:0)

实际上,我的问题是类型。 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空异常