2010-11-24 11 views
2

ここではシナリオです:私はこのような何かを持っている...春MVC - リファレンスデータ

<form:select path="somePath" .....> 
    <form:option value="" label="Please Select"/> 
    <form:options items="${students}" itemValue="id" itemLabel="name"/> 
</form:select> 

このドロップダウンリストが正常に動作します。

しかし、どのように特定の生徒の名前を表示できますか?私はこのようなことをやろうとします:

<c:out value="${students[id].name}"/> 

構文を手伝ってもらえますか?

おかげ

+0

選択した選択に応じて生徒の名前を表示しますか? – DwB

+0

はい、そのようなものですが、実際にはすべての生徒を各行に編集リンク付きのグリッドとして表示しています。したがって、特定の生徒(名前の変更)を編集したい場合、編集をクリックします。ページのテキストボックスには、特定の生徒の名前が表示されます。名前を変更して更新ボタンをクリックすることができます。 – racharambola

答えて

2

私は${students}学生オブジェクトの配列やリストであることを前提としています。そのように、それはidによって索引付けされず、そのように直接アクセスすることはできません。

のオプションがあります。

1)生徒のオブジェクトへのidからマップとして学生のあなたのコレクションを含めます。 items属性が${students.values}になると、個々の学生を${students[id]}と見なすことができます。

2)または、リストとしてそれを維持して、あなたのリストを反復処理し、IDが一致するものを見つける:あなたが知っていればどの学生あなたを最初から、最後に、

<c:forEach var="student" items="${students}"> 
    <c:if test="${student.id==id}"> 
     <c:out value="${student.name}" /> 
    </c:if> 
</c:forEach> 

3)またはその学生を参照データに別々に含めるようにしてください。

+0

Jacob。、働いてくれてありがとう。$ {students}は学生のリストを値として持つマップなので、2番目のオプションを使用しました。 – racharambola