如何显示选中的复选框? Spring-Jsp
How to display selected checkboxes ? Spring-Jsp
我是新 java 开发人员,我需要您的帮助。我已经看到类似主题的问答,但我仍然不确定如何处理它,所以我想寻求帮助。
我正在使用 Liferay 6.2 和 Spring,并且我有一个 jsp 页面,其中包含用于编辑 caseType 的表单。在这种形式中,我想添加一个角色复选框(select 权限)。我希望能够在编辑 caseType 时显示 selected 复选框。我的主要问题是我不确定要使用哪些变量。
<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>
提前感谢您的帮助!
好的,我相信我找到了解决方案。我的问题是我的 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,gets/sets 是 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>
我是新 java 开发人员,我需要您的帮助。我已经看到类似主题的问答,但我仍然不确定如何处理它,所以我想寻求帮助。
我正在使用 Liferay 6.2 和 Spring,并且我有一个 jsp 页面,其中包含用于编辑 caseType 的表单。在这种形式中,我想添加一个角色复选框(select 权限)。我希望能够在编辑 caseType 时显示 selected 复选框。我的主要问题是我不确定要使用哪些变量。
<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>
提前感谢您的帮助!
好的,我相信我找到了解决方案。我的问题是我的 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,gets/sets 是 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>