簡體   English   中英

如何用Struts2中的Action類的數組填充SelectBox?

[英]How to populate a SelectBox with an array from Action class in Struts2?

我在使用動作類使用Struts填充組合框時遇到了一個小問題。

這是我的表單元素:

<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();
    }
}

Struts2的Select屬性:

name :包含要顯示的數據的對象(在您的情況下為List);

listKey :在option元素中用作的字段

listvalue :在option元素中用作描述的字段,可在組合框上查看。

value :要預設值的引用元素。

如果name引用List<String> ,則可以使用list屬性在鍵和值中顯示字符串; 相反,如果像您的情況一樣, name指向List<Object> ,則必須指定哪個屬性是 ,哪個屬性是value

示例(將“ Estados”翻譯為“州”):

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

    // Getters and Setters here...
}

然后通過getStates()方法公開List<State> states

以及通過getMyPreferredState()方法獲得的首選狀態。

在jsp中,您將編寫:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM