2011-08-22 13 views
18

私はSpringを使用しています。私はフォームを持つJSPを持っています:その中でユーザのリストを表示するselectを選択します。このような状況では、ユーザー名やIDはユーザーにあまり意味を持たないので、firstname lastnameを表示する必要があります。フォームのitemLabelに複数のパラメータを使用することはできますか?select/form:option

私が試してみた:

<form:select id="userSelect" name="userId" path="user.id"> 
    <option value="">Select to Edit</option> 
    <form:options items="${user.userList}" itemValue="id" itemLabel="lastname firstname" /> 
</form:select> 
をしかし、それは私に大きな誤差を与えます。 itemLabelsに姓、名を表示させるにはどうすればよいですか?

答えて

38

私はそうは思わない。どちらかの姓と名の連結を返すあなたのオブジェクトでgetFullName()ゲッターを持っている、またはループでは、1でオプションを1つずつ表示します。もちろん

<form:select path="user" 
    items="${user.userList}" 
    itemValue="id" 
    itemLabel="fullName"> 
</form:select> 
+0

user.getFullName()によって行わ連結して

<form:select id="userSelect" name="userId" path="user.id"> <option value="">Select to Edit</option> <c:forEach var="theUser" items="${user.userList}"> <form:option value="${theUser.id}"><c:out value="${theUser.lastname} ${theUser.firstname}"/></form:option> </c:forEach> </form:select> 

その単純な理由は、私はそれを考えなかった!連結された文字列を返すオブジェクトを取得する。私はそれが欠けている場合、それはベッドのための時間だと思う。 – kasdega

+0

私の意見では最もエレガントな方法ではありません。 Formatterを使用してください。フォーム内の文字列からオブジェクトをコンクリートオブジェクトに "変換"する簡単な方法を提供します –

+0

@sashok_bgあなたが何を参照しているかの例を見たいと思います。どうぞ、 "Spring Formatter"を使用してこれを行う方法を教えてください。これはすばらしいでしょう! – kasdega