[RISOLTO] Manipolare form tramite DOM in pagine jsp

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

[RISOLTO] Manipolare form tramite DOM in pagine jsp

Messaggio 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.
Ultima modifica di giberg il gio 19 feb 2009, 10:23, modificato 1 volta in totale.

agharta
Linux 0.x
Linux 0.x
Messaggi: 81
Iscritto il: lun 17 dic 2007, 13:58
Località: Bassano del grappa

Re: Manipolare form tramite DOM in pagine jsp

Messaggio 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?

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

Re: Manipolare form tramite DOM in pagine jsp

Messaggio 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!

pino_otto
Linux 2.x
Linux 2.x
Messaggi: 333
Iscritto il: dom 9 lug 2006, 11:57
Slackware: 14.2
Kernel: 4.4.14-smp
Desktop: KDE 4.14.3
Località: Torino - Canton (China)

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

Messaggio 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.

:)

agharta
Linux 0.x
Linux 0.x
Messaggi: 81
Iscritto il: lun 17 dic 2007, 13:58
Località: Bassano del grappa

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

Messaggio 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!

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

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

Messaggio 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. ;)

Rispondi