Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    11

    Problema JavaBean non "condivisi" nella sessione

    Ciao a tutti,

    sono una nuova utente e questo è il mio primo post, ma è già parecchio che frequento il sito e le sue utilissime guide
    Grazie a voi ho migliorato il mio Java ed il mio C++ ed inoltre sono partita da zero con il PHP.

    Ora mi sto cimentando con le pagine JSP e i JavaBean ed ho un problema.
    Ho due semplici pagine JSP che usano lo stesso JavaBean (scope session).
    Quando faccio setproperty in una delle due pagine JSP e poi lancio l'altra, facendo getproperty nella seconda non riesco a trovare nulla.

    Pensando fosse un problema della gestione della sessione ho provato su tutti i browser (Firefox, Opera e persino InternetExplorer), ma non è cambiato nulla.

    Questo è il codice delle due pagine che sto usando per testare e capire i bean ed il loro utilizzo:

    Questa è setbeancolor.jsp
    <%@ page language="java" import="java.sql.*" errorPage="" %>

    <html>
    <head>
    <title>Java Bean Setter Example</title>
    </head>


    <jsp:useBean id="jb" scope="session" class="pack.JellyBean" />
    <jsp:setProperty name="jb" property="color" param="newColor" />

    <body>
    <form method="get" action="setbeancolor.jsp">
    <table width="336">
    <tr>
    <td valign="top">Il colore è stato settato a:</td>
    <td valign="top"><jsp:getProperty name="jb" property="color" /></td>
    </tr>
    <tr>
    <td valign="top">
    <p align="left">Scegli un colore: </p>
    <p align="center"> </p>
    <td valign="top">
    <input type="radio" value="Red" checked name="newColor">Rosso

    <input type="radio" value="Green" checked name="newColor">Verde

    <input type="radio" value="Blue" checked name="newColor">Blu
    </tr>
    <tr>
    <td colspan="2">
    <p align="center"><input type="submit" value="Invia">
    </tr>
    </table>
    </form>

    getbeancolor.jsp

    </body>
    </html>
    Mentre questa è getbeancolor.jsp
    <%@ page language="java" import="java.sql.*" errorPage="" %>

    <html>
    <head>
    <title>Java Bean Example</title>
    </head>

    <jsp:useBean id="jb" scope="session" class="pack.JellyBean" />

    <body>
    <form method="get">
    <table width="336">
    <tr>
    <td valign="top">
    <%= jb.getColor() %>
    <jsp:getProperty name="jb" property="color" />
    </td>
    </tr>
    <tr>
    <td colspan="2">
    <p align="center"><input type="submit" value="Get the bean color" name="submit">
    </p></td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    Ed infine il semplice bean
    package pack;

    public class JellyBean {

    private String color;

    public JellyBean() {

    }

    public String getColor() {
    return color;
    }

    public void setColor(String newColor) {
    color = newColor;
    }

    }
    Che posso fare?


    [edit] ho provato un'altra pagina JSP, che utilizza un bean e incrementa un contatore ogni volta che la pagine viene eseguita. O meglio, questo è quello che "dovrebbe" fare. Infatti all'atto pratico non incrementa nulla..... come se ad ogni mio aggiornamento si creasse un altra sessione......

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    codice:
    public JellyBean() {
       color=null;
    }
    Le variabili vanno istanziate altrimenti fa casino.
    Se non hanno ancora valore, settale a null.
    Fatta questa modifica, a me il tuo codice funziona.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    11
    Ho fatto la modifica ma purtroppo non ho notato cambiamenti.

    Finchè resto nella stessa pagina e seleziono opzioni diverse funziona,
    se clicco sul link sotto per andare nell'altra pagina, mi continua a dire null

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    A me con Netbeans capita di dover tener premuto shift e ricaricare la pagina appena lanciata dall'IDE per poter vedere le modifiche...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    11
    Il codice lo scrivo con Dreamweaver e le pagine le lancio dal browser.
    Ho provato ad impostare il colore iniziale a giallo nel costruttore, e infatti invece di vedere null, nella seconda pagina vedo Yellow (non prende i set che faccio nella pagina chiamante).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.