Newsgroup: it.comp.java
Titolo: Struts e le combo

Buongiorno a tutti. Sto cercando di creare una <select> attraverso le
taglib di struts ma non ne vengo a capo. Sto guardando con google,
cercando su "programmare con jakarta strust (o'reilly)" ma non c'è
verso; non capisco come fare.
L'actionForm restituisce una proprietà "years" che è una java.util.List.
Questa è popolata con dei bean che espongono due proprità: value e
text.
Per generare la combo sto provando sia con html:options che
html:optionsCollection ma ottengo sempre lo stesso messaggio di errore:
javax.servlet.jsp.JspException: Cannot find bean under name
org.apache.struts.taglib.html.BEAN
ecco come li utilizzo
	<logic:notEmpty name="enterForm" property="years">
		<html:select name="enterForm" property="years">
			<html:optionsCollection name="enterForm" property="years" value="value"
label="text"/>
		</html:select>
	</logic:notEmpty>
oppure
	<html:select name="enterForm" property="years">
		<html:options name="enterForm" collection="years" property="value"
labelProperty="text"/>
	</html:select>
ottenendo invece un eccezione javax.servlet.jsp.JspException: Cannot find
bean under name years
Se faccio un iterate sulla proprietà years, ho correttamente tutti i
valori.
	<logic:iterate id="item" property="years" name="enterForm">
		<bean:write name="item" property="value" />
	</logic:iterate>
Come si usa questo tag? Qualcuno potrebbe portare qualche esempio?
In fondo alla mail i codici del bean e dell'ActionForm.
Grazie e ciao
Davide
public class ComboBean implements Serializable {
	private String value 	= "";
	private String text		= "";
 
	public ComboBean(){
	}
 
	public ComboBean(String value, String text){
		this.value = value;
		this.text = text;
	}
 
	/**
	 * @return
	 */
	public String getText() {
		return text;
	}
	/**
	 * @return
	 */
	public String getValue() {
		return value;
	}
	/**
	 * @param string
	 */
	public void setText(String string) {
		text = string;
	}
	/**
	 * @param string
	 */
	public void setValue(String string) {
		value = string;
	}
}
public class EnterForm extends ActionForm {
	private String 	uid 	= "";
	private List	years	= null;
 
	/**
	 * @return
	 */
	public String getUid() {
		return uid;
	}
	/**
	 * @param string
	 */
	public void setUid(String string) {
		uid = string;
	}
	/**
	 * @return
	 */
	public List getYears() {
		return years;
	}
	/**
	 * @param list
	 */
	public void setYears(List list) {
		years = list;
	}
}
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ...
Per il momento ho risolto mettendo, nell'execute della action,  la List
in request con un bel
	request.setAttribute("years",theList);
e poi dalla pagina con 
	<html:select name="enterForm" property="years">
		<html:options collection="years" property="value" labelProperty="text"/>
	</html:select>
tutto funziona. Mi pare comunque una grossa str#####a se davvero questo
e l'unico modo di farlo. Ma in giro su internet ho trovato solo questi
esempi. Spero che qualcuno di voi abbia un esempio molto pių in stile
struts passando tutti i dati attraverso il form.
Ciao e grazie
Davide


 Davide
controlla
lo Scope di <action in strut-config
eventualmente usa un <jsp:usebean con scope appropriato nella jsp, ma non
dovrebbe servire se fai tutto bene
metti nel name dell'option il nome del bean che hai dato in struts.config
nella <property la collection
se sbatti la testa contro il muro di solito si spacca il muro, con struts,
e' cosi'.
Una buona architettura ma un disastro di praticita'
ciao Nicola
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Una buona architettura ma un disastro di praticita'
Vero, l'ho trovato anche io ottima come pensata ma riuscire ad
utilizzarlo a pieno è veramente difficile. Manca di documentazione
chiara con esempi precisi.
Attendo un altro riscontro :)


 l'eccezione
Ho dimenticato di mettere il codice :)
	<html:select name="enterForm" property="year" styleClass="history">
		<html:options name="enterForm" property="years.value"/>
	</html:select>
Riciao



    <html:select property="codice">
            <option value="#tutte#">Tutte</option>
            <html:options collection="listaSocieta"
                property="codice"
                labelProperty="nominativo"
                />
    </html:select>
cya N


     </html:select>
Cosě funziona anche a me ma ho dovuto mettere a mano nella request la
java.util.List, durante l'esecuzione dell'execute dell'action
	...
	request.setAttribute(Constants.YEARS,years);
	...
 
tu come hai fatto per farlo andare?
ciao
davide


 davide
ho guardato meglio e la metto anche io in request
mi sa che ci avevo smadonnato un po' anche io l'ultima volta
mettilo in request e amen
anche a me da un pochino fastidio la roba libera in request
ciao Nicola


 ciao Nicola
ciao e grazie ancora Davide
