lunedì 18 agosto 2008

Utilizzo del tag option:collection STRUTS per ottenere una combo box.

Vediamo come si utilizza il tag STRUTS option:collection e la classe Java LabelValueBean per popolare,visualizzare e utilizzare una combo box.
Dentro il form creiamo una lista e un campo che ci serve per la voce selezionata:

List listaCampi; // contiene la nostra lista di scelte
String campoSelezionato =""; // contiene la scelta selezionata


e ovviamente i metodi get e set:

public List getListaCampi() {
return listaCampi;
}
public void setListaCampi(List listaCampi) {
this.listaCampi = listaCampi;
}
public String getCampoSelezionato () {
return campoSelezionato;
}
public void setCampoSelezionato(String campoSelezionato) {
this. campoSelezionato = campoSelezionato;
}


Dentro la nostra classe (la nostra action) importatiamo la classe LabelValueBean : import org.apache.struts.util.LabelValueBean;
Poi Creiamo un metodo per popolare una lista;il metodo si chiama con :

chiamata al metodo:
List pippo=creaCombo();
Impostiamola dentro il form:

frm = (FRM_MIOFORM) form;
frm.setListaCampi(pippo);

dichiarazione del metodo:
protected List creaCombo() throws Exception {
List elencoCampi = new ArrayList();
elencoCampi.add(new LabelValueBean("Etichetta 1", "01"));
elencoCampi.add(new LabelValueBean("Etichetta 2", "02"));
elencoCampi.add(new LabelValueBean("Etichetta 3", "03"));
return elencoCampi;
}

Questa classe contiene un’ etichetta (es. Etichetta 1 ) e un valore (es. 01 ) che verrà nascosto all’utente.
Poi andiamo nella JSP. Per visualizzare la combo box scriviamo:

<table> <tr> <td>
<html:select name="FRM_MIOFORM" property="CampoSelezionato" onchange="document.FRM_MIOFORM.submit()" size="1"> <html:optionsCollection name="FRM_MIOFORM " property="ListaCampi" /> </html:select>
</td> </tr></table>

In questo modo verrà visualizzata la combo box e il valore scelto verrà messo nel campo CampoSelezionato.

Nessun commento: