【发布时间】:2012-11-17 18:46:50
【问题描述】:
我使用 Spring MVC 和 jQuery 在 JSP 中处理控制器发送的对象。
我的控制器正在使用以下方式向 JSP 发送多个对象:
modelAndView.addObject("roleForm" + rol.getRolecode(), form);
form 是以下类的对象:
public class RoleForm
{
private String roleCode;
private LinkedHashSet<String> listEnabled;
... getters and setters ...
}
所以,我发送的对象具有键 roleFormADMIN、roleFormUSER 等。这些对象的数量和名称未知,因为它们是从数据库中检索的。
在我的 JSP 中,我为每个角色访问其对应的 RoleForm:
<c:forEach items="${rolesList}" var="role">
<div class="role" id="${role}">
<label class="adminSectionTitle">
${role}
</label>
<form:form method="post" id="roleForm${role}" modelAttribute="roleForm${role}" action="roles.html">
<fieldset>
<form:hidden path="roleCode"/>
<div class="pickList">
<fieldset class="pickItems">
<legend >Enabled</legend>
<form:select path="listFunctEnabled" id="combo1" size="5" multiple="true">
<form:options items="${listFunctEnabled}" />
</form:select>
</fieldset>
</div>
</fieldset>
<div class="formButtons">
<input type="submit" value="<fmt:message key="button.save"/>" />
<input type="button" name="reset" onclick="location.href='<c:url value="roles.html"/>'" value="<fmt:message key="button.clear"/>" />
</div>
</form:form>
</div>
</c:forEach>
每个RoleForm的属性roleCode被正确检索,但无法访问表单的属性listFunctEnabled(为空)。
如果我直接写表单的名称(例如,roleFormADMIN.listFunctEnabled),那么它会将列表中的每一项都写在 form:option 中。
如果我使用 roleForm${role}.listFunctEnabled,那么它会将其视为一个 String,并说 String 没有任何名为 listFunctEnabled 的属性。
每个角色都需要一个表单,因为每个角色都需要一个按钮,以便更新其功能列表。
我怎样才能做到这一点?
【问题讨论】:
-
RoleForm中的字段名为listEnabled。该列表的吸气剂是getListFunctEndabled还是getListEndabled? -
它被称为getListFunctEnabled。我不好,编辑时。
标签: spring model-view-controller jstl modelattribute modelandview