Friday, 15 March 2013

java - Pre select options from list dynamically -



java - Pre select options from list dynamically -

i'm teaching myself coding , building little web application practice users can have roles. it's based on spring mvc. users can edited. want when user profile comes list user's roles, roles has selected , available roles unselected.

i'm using jquery multiselect.js plugin nice separated of selected , unselected items.

i'm adding 2 attributes requestmethod in controller:

allroles , userroles

i thought using jstl tags work generade select list:

<c:foreach items="${allroles}" var="role"> <c:foreach items="${userroles}" var="userrole"> <form:option value="${role.id}" selected="${role.name == userrole.name ? 'selected' : ''}">${role.name}</form:option> </c:foreach></c:foreach>

well, works fine if user has 1 current role. 1 time has 2 or more options appear doubled or tripled [...] in list, breaks select. makes sense since it's 2 nested foreach loops, want go through allroles , check roles equal roles on userroles , mark them selected if so.

i'm kinda stuck @ moment here, can please tell me if it's possible jstl and/or right or improve way?

thanks.

assuming have overridden equals method role class , using el 2.2+, can simplify markup to:

<c:foreach items="${ allroles }" var="role"> <form:option value="${ role.id }" selected="${ userroles.contains(role) ? 'selected' : ''}"> ${role.name} </form:option> </c:foreach>

this should solve duplication problem.

java spring-mvc jquery-plugins jstl

No comments:

Post a Comment