如何显示所选复选框?弹簧jsp中

时间:2016-03-21 09:17:10

标签: java jsp spring-mvc checkbox liferay-6.2

我是新的Java开发人员,我需要你的帮助。我已经看到了类似主题的问题答案,但我仍然不确定如何处理它,所以我想要求一些帮助。

我正在使用Liferay 6.2& Spring和我有一个jsp页面,我的表单编辑了一个caseType。在这种形式中,我想添加一个Roles复选框(以选择权限)。我希望能够在编辑caseType时显示所选的复选框。我的主要问题是我不确定要使用哪些变量。

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone="Asia/Kolkata"

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

好吧,我相信我找到了解决方案。我的问题是我的Dto中没有合适的吸气剂/定型剂。

所以在我的控制器中,我有一个列出角色来自哪里(liferay-roles)

@ModelAttribute("roles")
public List<Role> getRoles() {

    List<Role> allRoles = new ArrayList<Role>();
    try {
        allRoles = RoleLocalServiceUtil.getRoles(QueryUtil.ALL_POS,  
    ueryUtil.ALL_POS);
    } catch (SystemException e) {
        logger.error("Could Not get any Liferay Roles" + e.getMessage(), e);
    }
    return allRoles;
}

在我的Dto代码中,我有getter和Setter获取/设置Strings的串联。

public String[] getCreateRoleIdsArray() {
    return createRoleIds.split(",");
}

public void setCreateRoleIdsArray(String[] selectedRoles) {
    Logger.getLogger(this.getClass()).error("setCreateRoleIdsArray");
    String selRoles = new String();
    for (String role : selectedRoles) {
        selRoles = selRoles + "," + role;
    }
    setCreateRoleIds(selRoles);
}

最后在我的jsp文件中

<form:form name="wblCaseType" method="post" modelAttribute="wblCaseType"action="${saveWblCaseType}">
<form:hidden path="wblCaseTypeId" />
....
<tr>
    <td><form:label path="createRoleIds"><liferay-ui:message key="roles"/></form:label></td>
    <c:forEach items="${roles}" var="role">
       <td><form:checkbox path="createRoleIdsArray" id="${role.roleId}" label="${role.name}" value="${role.roleId}" /></td>
    </c:forEach>
</tr>