2010-11-24 4 views
2

Вот сценарий: У меня есть что-то вроде этого ..Spring 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 2010-11-24 18:32:30

+0

Да, что-то в этом роде. На самом деле я показываю всех учеников как сетку с ссылкой на редактирование в каждой строке. Поэтому, когда кто-то хочет отредактировать конкретного ученика (изменить имя), он нажмет на редактирование. Текстовое поле на странице показывает имя этого конкретного ученика, чтобы они могли изменить имя и нажать кнопку обновления. – racharambola 2010-11-24 18:53:53

ответ

2

Я предполагаю, что ${students} массив или список студенческих объектов. Таким образом, он не индексируется по id и не может быть напрямую обращен таким образом.

Варианты включают в себя:

1) Включите вашу коллекцию студентов как карта от идентификатора к объекту студента; ваш атрибут items затем станет ${students.values}, и затем вы можете найти отдельного учащегося как ${students[id]}.

2) Или, сохранить его в виде списка, а затем итерацию по списку и найти тот, где идентификатор соответствует:

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

3) Или, наконец, если вы знаете, с самого начала какой студент вас забота о них, включите этот ученик отдельно в справочные данные.