【问题标题】:How to display selected checkboxes ? Spring-Jsp如何显示选中的复选框? Spring-Jsp
【发布时间】:2016-03-22 16:54:50
【问题描述】:

我是新的 Java 开发人员,我需要您的帮助。我已经看过类似主题的问答,但我仍然不知道如何处理它,所以我想寻求一些帮助。

我正在使用 Liferay 6.2 和 Spring,并且我有一个带有编辑 caseType 表单的 jsp 页面。在此表单中,我想添加一个角色复选框(以选择权限)。我希望能够在编辑 caseType 时显示选中的复选框。我的主要问题是我不确定要使用哪些变量。

<form:form name="wblCaseType" method="post" modelAttribute="wblCaseType" action="${saveWblCaseType}">
<form:hidden path="wblCaseTypeId" />
<br/>
    <table style="margin-left:80px">
<tbody>
        <tr>
            <td><form:label path="type"><liferay-ui:message key="type"/></form:label></td>
            <td><form:input path="type" /><form:errors path="type" cssClass="errorClass" /></td>
        </tr>
        <tr>
            <td><form:label path="createRoleIds"><liferay-ui:message key="roles"/></form:label></td>
            <td><form:checkboxes path="createRoleIds" items="${roles}" value="${wblCaseType.createRoleIds}" itemValue="name" itemLabel="roleId" /></td>
    </tr>

提前感谢您的帮助!

【问题讨论】:

  • 为什么不迭代角色列表并为每个角色显示一个复选框?我之前没用过form:checkboxes,是不是跟Spring有关?如果没有,您应该使用&lt;aui&gt; 标签(例如:&lt;aui:input name="checkBox1" label="your-label" type="checkbox" value="role1"&gt;&lt;/aui:input&gt;)。
  • 感谢您的回复 :) 我正在尝试实施此处给出的答案:stackoverflow.com/questions/35043873/…

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


【解决方案1】:

好的,我相信我找到了解决方案。我的问题是我的 Dto 中没有正确的 getter/setter。

所以在我的控制器中,我有角色来自的列表(liferay - 角色)

@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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    相关资源
    最近更新 更多