2012-10-10 57 views
1

我有一個小問題,填充用的動作類支柱組合框..如何使用Struts2中Action類的數組填充選擇框?

這是我的表單元素:

<s:select label = "Estado" 
      name = "estados" 
      value = "#estados" 
     headerKey = "-1" 
    headerValue = "---Seleccione---" 
      list = "estados"/> 

這是動作類:

public class PrepararMedicosAction extends ActionSupport 
           implements Preparable, ParameterAware{ 

    public List <Estado> estados; 

    private IFachada lookupFachadaRemote() { 
     try { 
      Context c = new InitialContext(); 
      return (IFachada) c.lookup("java:global/Fachada/Fachada!com.interfaces.IFachada"); 
     } catch (NamingException ne) { 
      Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne); 
      throw new RuntimeException(ne); 
     } 
    } 

    public String display() { 
     return NONE; 
    } 

    @Override 
    public void prepare() throws Exception { 
     this.estados= fachada.getEstados(); 
    } 
} 

回答

0

Struts2的選擇屬性:

name來源包含您要顯示的 數據的對象(您的案例中的列表);

listKey:用作描述在選項元素, 上看得到的組合框的字段:在選項元素

listvalue用作領域。

value:將參考元素設置爲預設值

如果nameList<String>,你可以使用list屬性顯示在鍵和值的字符串;如果相反,如在您的情況下,name是指List<Object>,您必須指定哪個屬性是密鑰和哪個是

例(讓我們翻譯 「ESTADOS」 到 「國」):

public class State { 
    private Long id; 
    private String stateName; 

    // Getters and Setters here... 
} 

然後通過getMyPreferredState()方法暴露List<State> states通過getStates()方法,

和您的首選國家。

在JSP中,你會寫:

<s:select name = "states" 
     value = "myPreferredState" 
     listKey = "id" 
    listValue = "stateName" 
    headerKey = "-1" 
    headerValue = "Please choose a state..." 
/> 
相關問題