当前位置: 首页 > 知识库问答 >
问题:

如何显示选中的复选框?SpringJsp

尉迟阳煦
2023-03-14

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

我用的是Liferay 6.2

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

提前感谢您的任何帮助!

共有1个答案

叶允晨
2023-03-14

好的,我相信我找到了解决方案。我的问题是我的DTO中没有合适的getter/setter。

所以在我的控制器中,我有角色来自哪里的列表

@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代码中,我有获取/设置< code >字符串连接的getter和Setter。

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>
 类似资料:
  • 我有以下问题:我有沙箱中的代码,我想显示一个按钮,如果复选框被选中,最大数量大于1。最大数量条件不是问题,而是复选框的问题。我不知道如何获得特定复选框的“选中”值。我认为我不能对索引做任何事情,因为索引值在映射optionModules时被多次使用。预先感谢你的帮助。沙盒链接:https://codesandbox.io/s/nostalgic-germain-e18wh

  • 我有一个WebGrid,它显示我表格中的值和一个编辑按钮。当用户单击此按钮时,会出现一个弹出表单或对话框表单,其中填充了我前面提到的同一个表中的值。 我已经设法格式化日期值,现在有兴趣格式化从我的表中显示在复选框中的布尔值(true/false)。目前,它显示为一个文本框,值为true或false。 以下是我的代码的一部分: 下面是我的html的一部分 值标记和支付是布尔值。现在,我打算将类型更改

  • 我尝试将CheckBoxTableCell添加到我的TableColumn中,但是无论值是真还是假,单元格都只显示未选中的框 我的对象 我如何声明该表 我已经通过使用布尔属性类型创建一个新变量并使用新变量更改 PropertyValueFactory 参数解决了这个问题 ,问题是我不想使用布尔属性或属性 ,因为我的所有模型类仍然使用标准类型而不是属性 有办法做到这一点吗? 如果没有,也许我只是将所

  • 问题内容: 选中相应的复选框后,是否可以通过非JavaScript方式更改标签的颜色? 问题答案: 如果你有 你可以做

  • 此表单在基于函数的视图中显示单选按钮,但在我引入基于类的视图时更改为复选框,有什么解决办法。我希望他们再次显示单选按钮 表单.py models.py 模板 views.py

  • 我的p:dataTable是这样设置的。 感谢任何帮助