Spring 百里香叶+;春天使用对象方法代替表单中的另一个块
我有一个典型的updateUser表单,它是用Thymeleaf+Spring构建的。我可以列出用户角色,但我正在尝试将它们放入selectbox组件中。我正在处理这一行th:selected=“${user.hasRole(role.role)}”。现在,我知道这个组件可以工作,这只是访问布尔函数来启用它的问题。我试图使用select th:object引用form对象的函数。我的语法不起作用。我还尝试访问该函数,就像以前的输入标记一样(只使用名称而不使用对象本身。即username,或者在本例中是hasRole()。这也不起作用Spring 百里香叶+;春天使用对象方法代替表单中的另一个块,spring,forms,thymeleaf,Spring,Forms,Thymeleaf,我有一个典型的updateUser表单,它是用Thymeleaf+Spring构建的。我可以列出用户角色,但我正在尝试将它们放入selectbox组件中。我正在处理这一行th:selected=“${user.hasRole(role.role)}”。现在,我知道这个组件可以工作,这只是访问布尔函数来启用它的问题。我试图使用select th:object引用form对象的函数。我的语法不起作用。我还尝试访问该函数,就像以前的输入标记一样(只使用名称而不使用对象本身。即username,或者在本
<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>
用户名:
角色:
提交
事实上,我的问题是类型。th:selected=“${user.hasRole(role.role)}”是一个字符串,应该是th:selected=“${user.hasRole(role)}”。我在域对象中有这两个方法,所以这很好 th:value=“${role.role}”对于持久性来说是错误的。我想返回role,但在使用role.role时收到以下错误消息 代码[user.roles,roles];参数[];默认消息[roles]];默认消息[未能将类型为'java.lang.String'的属性值转换为属性的必需类型'java.util.List' 使用“${role}”时出现Java空异常