Passare una String da una pagina JSP ad un' altra

di Anonimizzato11567 il
10 risposte
Salve a tutti,
ho un stringa nel file enter_other_nfr.jsp che devo passare alla pagina addpattern.jsp. Mi sapreste dire come fare?

10 Risposte

  • Salva ha scritto:


    ho un stringa nel file enter_other_nfr.jsp che devo passare alla pagina addpattern.jsp. Mi sapreste dire come fare?
    Troppo vago. Quale è la relazione tra enter_other_nfr.jsp e addpattern.jsp? Chi chiama chi e come?
    In enter_other_nfr.jsp c'è un form che fa un submit verso addpattern.jsp? (allora si tratta di passare parametri alla request HTTP)
    O altro?
  • In enter_other_nfr .jsp c'è:
    
    ...
    <%
    String name_en = "Ciao a tutti";
    %>
    
    <form method="post" action="addpattern.jsp">
    	<h2> Se la selezione del requisiti è terminata effettua la ricerca </h2>
    	<ul class="actions">
    	<li><input type="submit" value="Search" class="special" /></li>
    	</ul>
    </form>
    
    Premendo il bottone Search vado sulla pagina addpattern.jsp nella quale voglio recuperare il contenuto di name_en mettendolo in una stringa.
  • Salva ha scritto:


    Premendo il bottone Search vado sulla pagina addpattern.jsp nella quale voglio recuperare il contenuto di name_en mettendolo in una stringa.
    Allora deve essere passato come parametro nel body della request. Se non è una informazione visibile all'utente, lo dovresti mettere in un campo "hidden" ( <input type="hidden" name="nomechescegli" value=" ..... "> per intenderci)

    Poi in addpattern.jsp recupererai il parametro accedendo alla request (ci sono diversi modi).
  • Tenendo presente che il nome della stringa da passare è name_en, ho modificato la forma in questo modo:
    
    <form method="post" action="addpattern.jsp">
    	<h2> Se la selezione del requisiti è terminata effettua la ricerca </h2>
    	<ul class="actions">
    	<li><input type="submit" value="Search" class="special" /></li>
    	</ul>
    	<input type="hidden" name="name" value="name_en">
    </form>
    
    e, nel file addpattern.jsp ho provato a recuperarla in questo modo:
    
    String nome = request.getParameter("name_en");
    
    ma la stringa recuperata è un null. Cosa sbaglio?
  • Salva ha scritto:


    <input type="hidden" name="name" value="name_en">
    Intanto il name_en che è menzionato qui NON c'entra niente con la variabile a livello Java che hai chiamato name_en. Non è così che funziona.

    A livello basilare puoi usare una JSP expression <%= %>
    <input type="hidden" name="name" value="<%= name_en %>">
    Così inietta il valore di name_en nella response in mezzo al resto. Ma attenzione, se la stringa contenesse caratteri che sono speciali in HTML es <, avresti un HTML "sballato". Non è questo il modo più pulito per farlo.

    Ma se la stringa fosse fissa ... perché non la metti direttamente nel value?

    Salva ha scritto:


    
    String nome = request.getParameter("name_en");
    
    ma la stringa recuperata è un null. Cosa sbaglio?
    Il nome del parametro è quello dell'attributo name del <input> ... che hai chiamato "name".
  • La stringa non è fissa, quindi non posso inserirla nell' attributo value.
    Ho corretto l' errore, ma la stringa che mi viene passata nel file addpattern.jsp è solamente "Ciao" e non "Ciao a tutti"...praticamente mi passa tutto ciò che trova fino al primo carattere blank....come potrei risolvere la cosa?
  • Salva ha scritto:


    La stringa non è fissa, quindi non posso inserirla nell' attributo value.
    Ok

    Salva ha scritto:


    Ho corretto l' errore, ma la stringa che mi viene passata nel file addpattern.jsp è solamente "Ciao" e non "Ciao a tutti"...praticamente mi passa tutto ciò che trova fino al primo carattere blank....come potrei risolvere la cosa?
    No ... alt ... gli spazi non sono quelli un problema!

    Se nel punto in cui fai

    <input type="hidden" name="name" value="<%= name_en %>">

    la variabile name_en ha valore "Ciao a tutti", allora l'HTML generato è equivalente a

    <input type="hidden" name="name" value="Ciao a tutti">

    e questo E' corretto. Quindi farai tu qualcosa di sbagliato con quella stringa, da una parte o dall'altra.
  • Allora, nel body del file addpattern.jsp ho il seguente codice:
    
    <%
    				String nome = request.getParameter("name");
    				System.out.println(nome);//per visualizzare il contenuto su Console
    				System.out.println(nome.length());
    %>
    
    ma su Console vedo solo Ciao e il numero 4.
    Nel file enter_other_nfr.jsp, come mostrato prima, nel body ho scritto così:
    
    <%
    	String name_en = "Ciao a tutti";
    %>
    <form method="post" action="addpattern.jsp">
    	<h2> Se la selezione del requisiti è terminata effettua la ricerca </h2>
    	<ul class="actions">
    		<li><input type="submit" value="Search" class="special" /></li>
    	</ul>
    	<input type="hidden" name="name" value=<%= name_en %>>
    </form>
    
    Non capisco dove possa aver sbagliato.
  • Salva ha scritto:


    <input type="hidden" name="name" value=<%= name_en %>>
    Non capisco dove possa aver sbagliato.
    Le virgolette!!!

    <input type="hidden" name="name" value="<%= name_en %>">
  • Cavolo che errore stupido!!!
    Ora funziona tutto bene
Devi accedere o registrarti per scrivere nel forum
10 risposte