我有以下问题
List<UserProfileHelper>
值如您所见,ProfileUserCommand对象包含2个布尔值,用于控制GSP中复选框的状态。这部分工作正常,因为我可以看到GSP正确呈现,并且复选框已正确标记/未标记。
在将表单提交回控制器时,我不知道如何使用GSP中的更新值“重建”此列表,因此我可以获得List<UserProfileHelper>
更新的数据。
这些是我的课程
UserProfileHelper.groovy
class UserProfileHelper {
Long optionId
String optionName
boolean isSubMenu
boolean hasAccess
boolean canWrite
}
ProfileUserCommand.groovy
class ProfileUserCommand {
String username
List userProfile = [].withLazyDefault { return new UserProfileHelper() }
static constraints = {
username blank: false
userProfile blank: true, nullable: true
access blank: true, nullable: true
}
}
profile.gsp(仅限GSP的相关部分)
<g:each in="${command.userProfile}" var="option">
<tr>
<td>
${option.optionId}
</td>
<td>
<g:if test="${!option.isSubMenu}">
${option.optionName}
</g:if>
<g:else>
</g:else>
</td>
<td>
<g:if test="${option.isSubMenu}">
${option.optionName}
</g:if>
<g:else>
</g:else>
</td>
<td>
<g:checkBox bean="${option}" name="access" value="${option.hasAccess}"/>
</td>
<td>
<g:checkBox bean="${option}" name="write" value="${option.canWrite}"/>
</td>
</tr>
</g:each>
提前致谢!
答案 0 :(得分:0)
您只需要将命令添加到控制器方法的参数中。
E.g:
class YourController {
def submitAction(ProfileUserCommand command) {
// do something with command
}
}