2016-03-10 62 views
0

我有forEach JSTL循環是通過javabean名稱State中的幾個狀態的ArrayList。for each JSTL loop for下拉列表中沒有值傳遞

<%   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

沒有servlet。只有jsp和javabean設置了屬性javabean對象。 – rob111

回答

0

是不是有亂用名稱,當您使用

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

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

在C:的forEach?