2016-07-08 69 views
0

我知道这已被问过,但所提供的解决方案似乎不适用于我的目的。弹簧形式:选择所选值

我目前正在开发一个web应用程序,我目前正在处理用户配置文件页面。我所做的是,当用户访问他/她的个人资料时,他/她将能够管理他/她的个人资料。

我有一个弹簧窗体:选择框填充从控制器传递的RolesObject列表和GroupsObject列表。该对象由一个id和名称字段组成。我想要的是当窗体:选择加载时,它将从列表中选择用户的当前角色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> 

我的问题是列表填充,但它不选择默认值。

比方说,我的角色值 值= 1,标签= role_1 值= 2,标签= role_2

和用户的当前角色是role_2其中有2的ID,选择形式负载时,它不会自动加载role_2,而是仍然将role_1显示为所选值

回答

0

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

+0

我试过但没有在我的情况下工作。 – ReiSchneider