Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    6

    Domanda java package

    Allora il problema e' questo:
    Io ho due classi che chiameremo:
    classe "a" (come la macchina )
    e classe "b".
    La classe "b" sta dentro un package che chiameremo: "dir".
    Ora facciamo un esempio:
    Io voglio accedere a una variabile pubblica dalla classe "a" alla "b".
    quindi mi basta fare dentro "a":

    codice:
    dir.b.NomeVariabile
    Ora mettiamo che io voglio fare il contrario
    Voglio accedere dalla classe b a una variabile pubblica nella classe "a".
    Dentro "b":
    codice:
    a.NomeVariabile
    Non funziona! perche' ovviamente lui va a cercare la classe "a" nella stessa directory della classe "b".
    Ora la domanda e' questa:
    Come acciderbolina si fa a dire a java che sta classe "a" deve cercarla non nel package "dir" ma nella directory superiore?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    La cosa piu' semplice e' mettere un package anche a livello superiore.
    La struttura diventerebbe:
    codice:
    prog
       - A.java
       - dir
          - B.java
    A quel punto se in B chiami
    codice:
       prog.A.nomeVariabile
    ti va. Natutralmente le variabili devono essere statiche.

    P.s. Come ti e' capitato un caso del genere? Sembra piuttosto strano.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    6
    perche' ho un bean (chiamiamolo pincopallino.java) che sta dentro il package "bean" che deve accedere a un oggetto creato della servlet (poi vari jsp useranno questo oggetto tramite il bean.pincopallino), e tale servlet sta nel "root" del programma dentro nessun package.

    Cmq la soluzione di mettere un'altro package ancora superiore volevo evitarla.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    E non puoi passare l'oggetto al bean?
    Cmq...
    L'oggetto e' statico? Se non e' statico ti serve un istanza della servlet per accedervi.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    6
    e come faccio a passare l'oggetto al bean?
    Il bean viene instanziato dal jsp mica dalla servlet.
    non c'e' mica
    codice:
    Bean.nome instanzabean= new Bean.nome()
    dentro la servlet.
    Io quello che voglio, e' passare l'instanza di un oggetto creato dalla servlet ai bean creati dai jsp.
    codice:
    <jsp:useBean id="data" class="Bean.xxxx" scope="session"/>
    E allo stesso tempo devo essere sicuro che questo oggetto che voglio passare al bean sia unico per tutti i jsp, quindi non posso instanziarlo dentro il bean.

    Il tutto sarebbe stato molto facile se non ci fosse stato il package di mezzo.

    Bastava fare dal bean: nomeservlet.quellochevoglio

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    e come faccio a passare l'oggetto al bean?
    Il bean viene instanziato dal jsp mica dalla servlet.
    Servlet->Crea l'oggetto->Salvo l'oggetto in request->inoltro alla jsp->recupero l'oggetto da request->Istanzio il bean e gli passo l'oggetto.
    Ma lascia perdere questa strada, forse la soluzione e' piu' semplice.
    E allo stesso tempo devo essere sicuro che questo oggetto che voglio passare al bean sia unico per tutti i jsp, quindi non posso instanziarlo dentro il bean
    Dev'essere unico per tutti i bean di tutte le sessioni? Immagino di no perche' altrimenti basta istanziare l'oggetto nel bean e definirlo statico.
    Quello che tu voglia e' che l'oggetto sia lo stesso per tutte le jsp della stessa sessione, immagino; in questo caso jsp:useBean istanzia un nuovo bean solo se non esiste gia', in caso contrario usa quello gia' esistente.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    6
    Originariamente inviato da simo7784 jsp:useBean istanzia un nuovo bean solo se non esiste gia', in caso contrario usa quello gia' esistente.
    ma questo vale pure se due jsp usano lo stesso bean?
    Cioe' un bean viene instanziato una volta oppure due volte (una volta per ogni jsp diverso nella stessa sessione)?

    a.jsp e b.jsp hanno lo stesso pezzo di codice:

    codice:
    <jsp:useBean id="data" class="Bean.xxxx" scope="session"/>
    Il bean xxx quante volte viene instanziato?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Una sola volta per tutte le n pagine che usano la stessa sessione.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    6
    grazie sei stato molto gentile

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.