我知道之前已经提出这个问题,但提供的解决方案似乎并不适合我。
我目前正在开发一个Web应用程序,我目前正在处理用户个人资料页面。我正在做的是,当用户访问他/她的个人资料时,他/她将能够管理他/她的个人资料。
我有一个弹簧形式:选择框填充RolesObject列表和从控制器传递的GroupsObject列表。该对象由id和name字段组成。我想要的是当表单:选择加载时,它将从列表中选择用户的当前角色ID和组ID。
控制器
public ModelAndView viewProfile(parameters) {
ModelAndView mav = new ModelAndView();
mav.setViewName("viewProfile");
...
List<RolesObject> roles = rolesService.getRolesList();
List<GroupsObject> groups = groupsService.getGroupsList();
Map<String, List> map = new HashMap<String, List>();
map.put("roles", roles);
map.put("groups", groups);
mav.addObject("map", map);
return mav;
视图
<form:select path="role_id" id="role_id" cssClass="form-control" cssStyle="width: 100%;" value="${current.getRole_id()}" required="required">
<c:forEach var="role" items="${map.roles}">
<form:option value="${role.getId()}" label="${role.getName()}" />
</c:forEach>
</form:select>
<form:select path="group_id" id="group_id" cssClass="form-control" cssStyle="width: 100%;" value="${current.getGroup_id()}" required="required">
<c:forEach var="group" items="${map.groups}">
<form:option value="${group.getId()}" label="${group.getName()}" />
</c:forEach>
</form:select>
我的问题是列表填充但它没有选择默认值。
让我们说我的角色价值观是 value = 1,label = role_1 value = 2,label = role_2
并且用户的当前角色是role_2,其id为2,当加载选择表单时,它不会自动加载role_2,而是仍将role_1显示为所选值
答案 0 :(得分:0)
要预选选项,您需要在控制器中设置role_id和group_id,并将其设置为页面上表单对象的modelattribute。