我有一个使用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>
答案 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空异常