Pagina 1 di 1

[RISOLTO] Manipolare form tramite DOM in pagine jsp

Inviato: gio 19 feb 2009, 2:31
da giberg
Ciao.

Sto modificando un'applicazione jsp/Struts.
L'applicazione non l'ho realizzata direttamente io ma un tool
di cui parlavo tempo fa qui.
Il tool mi genera in automatico l'applicazione ma è
possibile modificarla in seguito, ad esempio modificando
codice html (quello che so fare io perché jsp
non lo conosco), ricompilandola con ant.

Quello che sto cercando di fare è
quello di avere nel form della pagina
un menù "select" che possa cambiare
il valore nei campi testo tramite javascript
in base alla scelta. Non conoscendo
più di tanto javascript e DOM mi sono
basato sull'esempio che si trova qui,
modificando in parte il codice. Infatti
non devo riempire il campo testo con
il valore della voce selezionata ma in realtà
devo diversi valori in diversi campi.
In una semplice pagina html l'operazione
mi riesce con questo codice (al momento
il javascript modifica solo un campo):

Codice: Seleziona tutto

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function selectAlbum(){
var collezioni=document.getElementById("listaAlbum");
album=collezioni.options[collezioni.selectedIndex].value;
switch(album){
case "Fwc06":
 document.getElementById("nfig").value=596;
 break;
case "Ue08":
 document.getElementById("nfig").value=535;
 break;
case "pers":
 document.getElementById("nfig").value="";
 break;
}
}
//  End -->
</script>

</head>

<body>
<form>

<select name="listaAlbum" onchange="selectAlbum()" id="listaAlbum">
<option value="Fwc06">Fifa World Cup 2006</option>
<option value="Ue08">Uefa Euro 2008</option>
<option value="pers">Personalizza</option></select>

<input type="text" name="nfig" size="10" value="" id="nfig">
</form>)
</body>

</html>
Lo script legge il contenuto degli
elementi del form tramite
document.getElementById().
Il problema sorge nel file jsp con
i tag di Struts.
Per avere un menù select uguale
a quello precedente devo usare
il seguente codice (oltre a modificare
un file java)

Codice: Seleziona tutto

<html:select property="listaAlbum" onchange="selectAlbum()">
<html:option value="Fwc06">Fifa World Cup 2006</html:option>
<html:option value="Ue08">Uefa Euro 2008</html:option>
<html:option value="pers">Personalizza</html:option>
</html:select>
Il problema è che <html:select> non
prevede un "id" mentre <html:option>
sì, aggiungendo styleId="..." che poi
verrà trasformato in "id" quando tradotto
in html. Ovviamente se provo a mettere
un "id" a <html:select> esce un errore
perché non è previsto nella libreria standard
dei tag di Struts e quindi non viene generata
la pagina. L'id se inserito in <html:option> non
serve a nulla nel mio caso (non ha alcun effetto).

Qualcuno sa suggerirmi una strada diversa?

Potrei anche pensare di scrivere
in normale html gli elementi del form
interessati ma così perderei la gestione
degli errori per quei campi.

Re: Manipolare form tramite DOM in pagine jsp

Inviato: gio 19 feb 2009, 8:54
da agharta
http://struts.apache.org/1.2.9/userGuid ... tml#select

styleId per html:select su struts 1.2.x esiste.

Che versione di struts usi?

Re: Manipolare form tramite DOM in pagine jsp

Inviato: gio 19 feb 2009, 10:23
da giberg
Ciao
l'applicazione mi pare venga creata con
la versione 1.2.9.
Purtroppo tra le varie prove non devo essermi
accorto che in select mettevo StyleId anziché styleId
mentre mi rendevo conto dell'errore quando lo commettevo
in option. Questo perché ho trovato degli howto vecchi
dove non veniva indicata l'opzione styleId per select
e quindi non mi sono più concentrato sull'errore di
scrittura nel tag <html:select> ma solo in quello
<html:option>. :oops:

Ora funziona tutto. ;)
Grazie mille agharta!

Re: [RISOLTO] Manipolare form tramite DOM in pagine jsp

Inviato: gio 19 feb 2009, 11:12
da pino_otto
Io mi trovo molto bene con il framework Wicket per fare web application dinamiche.

Se vuoi saperne di piu': http://wicket.apache.org/

Con Wicket non usi piu' JSP, ma solo HTLM e Java.

Puoi sviluppare applicazioni web utilizzando componenti. Lo sviluppo e la manutenibilta' diventano molto piu' semplici e veloci: basta con codice Java o tag library mescolato con HTML, dove alla fine non si capisce piu' niente.

:)

Re: [RISOLTO] Manipolare form tramite DOM in pagine jsp

Inviato: gio 19 feb 2009, 11:34
da agharta
giberg ha scritto:Ora funziona tutto. ;)
Grazie mille agharta!
De nada!!!! :lol: :lol:
pino_otto ha scritto:Io mi trovo molto bene con il framework Wicket per fare web application dinamiche.
Personalmente sono passato a zk http://www.zkoss.org/

E' lo stato dell'arte per quanto riguarda le web application (a mio avviso): guardate qui http://www.zkoss.org/zkdemo/userguide/

Permette di sviluppare anche in java puro, python, ruby, Groovy e altri linguaggi.

Veramente notevole.

Ho ridotto di un terzo il tempo di sviluppo delle web application. Senza tenere conto che ti puoi estendere i componenti che usa come vuoi.

Da considerare (sempre a mio avviso).

Byez!

Re: [RISOLTO] Manipolare form tramite DOM in pagine jsp

Inviato: gio 19 feb 2009, 17:28
da giberg
pino_otto ha scritto:Io mi trovo molto bene con il framework Wicket per fare web application dinamiche.

Se vuoi saperne di piu': http://wicket.apache.org/

Con Wicket non usi piu' JSP, ma solo HTLM e Java.

Puoi sviluppare applicazioni web utilizzando componenti. Lo sviluppo e la manutenibilta' diventano molto piu' semplici e veloci: basta con codice Java o tag library mescolato con HTML, dove alla fine non si capisce piu' niente.

:)
Ti ringrazio. Sinceramente io non conosco
JSP, Java e nemmeno i vari framework. Un giorno
probabilmente mi metterò a studiarmeli.
Il fatto che la mia applicazione sia in Struts
non dipende da me ma dal sito che me la crea automaticamente.
Io dovevo concentrarmi nello script R che l'applicazione
deve far girare (lavoro che avevo fatto per la tesi),
non nel preoccuparmi dell'interfaccia e dei meccanismi
per farle eseguire lo script.

Comunque grazie delle segnalazioni. ;)