弹簧形式:选择所选值

时间:2016-07-08 01:59:15

标签: spring spring-mvc

我知道之前已经提出这个问题,但提供的解决方案似乎并不适合我。

我目前正在开发一个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显示为所选值

1 个答案:

答案 0 :(得分:0)

要预选选项,您需要在控制器中设置role_id和group_id,并将其设置为页面上表单对象的modelattribute。