2016-03-10 5 views
0

У меня есть цикл EST JSTL, который проходит через ArrayList из нескольких состояний в javabean name State.forEach JSTL loop для ниспадающего списка нет значения

<%   State state = new State(); 
      pageContext.setAttribute("state", state);%> 

      <select name="state"> 
      <c:forEach items="${state.states}" var="state"> 
       <option value="${state}> 
       ${state} 
       </option> 
      </c:forEach> 
      </select><br> 

По какой-то причине значение каждой опции равно нулю. Но EL между тегами параметров оценивается правильно.

Ниже моей Java Bean класса

import java.io.Serializable; 
import java.util.ArrayList; 


public class State implements Serializable{ 

private ArrayList states = new ArrayList(); 


public State() { 
    states.add("Massachusetts"); 
    states.add("New Hampshire"); 
    states.add("Connecticut"); 
    states.add("Rhode Island"); 
} 

public ArrayList getStates() { 
    return states; 
} 

public void setStates(ArrayList states) { 
    this.states = states; 
} 

} 

Любые предложения высоко ценятся.

+0

Просьба поделиться своим кодом контроллера – Pallavi

+0

'' Вы смешиваете имена переменных. Вы просматриваете содержимое state.states и сохраняете текущий в состоянии, поэтому вы в основном переопределяете его и имеете странные эффекты. Просто используйте 'var =" item "' и используйте это в своем опрете, а не в состоянии. –

+0

Сервера нет. Только jsp и javabean, которые задают атрибут javabean object. – rob111

ответ

0

не существует путаница с именами, когда вы используете

State state = new State();  
    pageContext.setAttribute("state", state); 

и

<option value="${state}">${state}</option> 

в вашем с: Foreach?