2016-07-08 29 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

値を選択し、フォームのロード、ユーザの現在の役割は、2のIDを持っているrole_2であるとしましょうrole_2を自動的にロードするのではなく、依然として選択した値としてrole_1を表示します。

答えて

0

オプションを事前に選択するには、コントローラのrole_idおよびgroup_idを設定し、ページ上のフォームオブジェクトのモデル属性として設定する必要があります。

+0

私は試してみましたが、私の場合はうまくいきませんでした。 – ReiSchneider

関連する問題