Newsgroup: it.comp.java
Titolo: beans session e paramiter

Ciao a tutti,
cosa mi manca per far funzionare questo accrocco?
il problema č questo :
sto usando i bean (come consigliato da GianpieroP) per portare dei 
parametri da una pagina ad un'altra (A to B).
I parametri li recupero da un form, ed č qui il problema;
se li scrivo io a manella, giungono perfettamente nella pagina B, ma se 
li recupero da un campo <input type=text> alla pagina B non arriva nulla.
E ancora, se la pagina punta a se stessa non ci sono problemi i 
parametri vengono visualizzati correttamente.
- Codice di esempio -
Page A.jsp
<%@
	page
	language = "java"
%>
<%
	String szNome   = request.getParameter("nome");
	String szCitta  = request.getParameter("citta");
	String szIndi   = request.getParameter("indi");
	String szTipo   = request.getParameter("tipo");
%>
<jsp:useBean id="pospar" scope="session" class="com.bean.InfoPos"/>
<jsp:setProperty name="pospar" property="nome" value="<%=szCamcom%>"/>
<jsp:setProperty name="pospar" property="citta" value="<%=szCitt%>"/>
<form name="curban" method="post" action="B.jsp">
	<tr>
		<td colspan="2">* Nome:
		<input name="nome" type="text" value="<%=szNome%>">
		</td>
	</tr>
	<tr>
		<td colspan="2">* Citta:
		<input name="citta" type="text" value="<%=szCitta%>">
		</td>
	</tr>
	..........>
</form>
#########################
Page B.jsp
.........>
<jsp:useBean id="pospar" scope="session" class="com.bean.InfoPos"/>
Nome :<jsp:getProperty name="pospar" property="nome"/><br>
Citta:<jsp:getProperty name="pospar" property="citta"/><br>
e cosě per il resto della pagina....
Risultato :
output blank
Nome :
Citta:
############################
Grazie a tutti.

Ciao, Timoteo!
Il giorno 31/03/2004 alle ore 11:26 hai scritto:
 T> I parametri li recupero da un form, ed è qui il problema;
 T> se li scrivo io a manella, giungono perfettamente nella pagina B, ma se
 T> li recupero da un campo <input type=text> alla pagina B non arriva
 T> nulla.
Il post dei dati del form viene fatto verso la pagina B quindi tutta la
trafila request.getParameter + <jsp:setProperty la devi mettere nella pagina
B e non nella A. Se vuoi fare le cose piu' elegantemente usa
<jsp:setProperty name="pospar" property="*"/> se i campi del form e le
property del bean hanno gli stessi nomi ti setta tutto in automatico.
 T> E ancora, se la pagina punta a se stessa non ci sono problemi i
 T> parametri vengono visualizzati correttamente.
Ovviamente, per il motivo di cui sopra.
Bye
-- 
Marco Maccaferri
MaccaSoft - 
http://www.maccasoft.com

  T> I parametri li recupero da un form, ed č qui il problema;


Ciao, Timoteo!
Il giorno 01/04/2004 alle ore 20:24 hai scritto:
 T> e credo anche che dovrei inserire i parametri in un oggetto (tenerli in
 T> memoria per cosě dire) e poi inserirli nella query.
 T> si ma come...
Il bean, se hai fatto come ho suggerito nel messaggio precedente, conserva i
dati per tutta la sessione (scope=session), quindi non hai che da
recuperarli da li. Nel tuo caso:
String szCon = pospar.getNome() + "-" + pospar.getEmail();
Il post del form non azzera niente.


Ciao Marco,
Il giorno 02/04/2004 alle ore 09:13 hai scritto:
 > Il bean, se hai fatto come ho suggerito nel messaggio precedente, 
conserva i
 > dati per tutta la sessione (scope=session), quindi non hai che da
 > recuperarli da li. Nel tuo caso:
 >
 > String szCon = pospar.getNome() + "-" + pospar.getEmail();
se provo a farmi stampare szCon ,stampa esattamente i dati passati(Mario 
- 
ma...@mario.it
).
Compilo il form della pagina B.jsp e sia a video che nella table stampa 
solo ( - ).
Ora cosa succede e come posso evitare questa situazione .
NB. ho fatto esattamente come dicevi tu scope="session".
Ciao grazie


Ciao, Timoteo!
Il giorno 02/04/2004 alle ore 14:32 hai scritto:
 T> se provo a farmi stampare szCon ,stampa esattamente i dati passati(Mario
 T> - 
ma...@mario.it
).
 T> Compilo il form della pagina B.jsp e sia a video che nella table stampa
 T> solo ( - ).
Allora, qui secondo me c'e' un errore di fondo e non ci capiamo.
Se non ricordo male, la sequenza e' questa:
Pagina A - Form con Post verso pagina B (definisci il bean, anche se non
servirebbe)
Pagina B - Riceve i dati dal form e li inserisce nel Bean tramite
setProperty... "*"
Dalla pagina B in poi il bean conserva i dati inseriti, non puo' perderli
perche' e' un bean di sessione. Li perde solo se cambi sessione (chiudi il
browser e lo riapri ad esempio).
Chiaro che se vai direttamente alla pagina B senza passare dalla A il bean
e' vuoto. Idem se cambi nome al bean dalla pagina A alla B o dalla B a
quella successiva (vengono memorizzati come due istanze diverse).
Se nella pagina B c'e' un altro form con dati diversi dovrai utilizzare un
bean diverso per questi dati, a maggior ragione se ci sono dei campi con lo
stesso nome. In teoria forse e' possibile utilizzare lo stesso bean ma non
ho idea di come vengano fatte le assegnazioni delle proprieta', cioe' se per
ogni campi del form viene cercata la proprieta' del bean (in questo caso
funzionerebbe) oppure se per ogni proprieta' del bean viene cercato il campo
del form (potrebbe non funzionare).
Poi c'e' il solito discorso del server che deve essere fatto ripartire se
non c'e' la direttiva reloadable nel context (in caso di Tomcat) quando
vengono modificati i bean.
