[英]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.