Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456

    Passare variabile da un Bean ad un altro Bean

    Ciao,
    esiste un modo per passare una variabile da un bean ad un altro?
    In realtà dovrei, dal bean A, passare un variabile al bean B, e dopo averla trattata nel bean B, ripassarla al bean A.

    Ho provato ad applicare la logica che si usa nella pagina jsp per richiamare un bean, ma non sono arrivato ad una soluzione.

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    niente?

  3. #3
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    1. i bean sono in sessione o in request?
    2. se sono in request, i bean sono nella stessa request?
    3. cosa vuol dire che non sei arrivato a nulla? Nella jsp vedi entrambi i bean valorizzati?
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    mmmm,forse non mi sono spiegato bene.

    Io voglio utilizzare una funzione presente in un bean, richiamandola direttamente da un altro bean, senza dover passare dalla pagina jsp.

    Faccio un esempio pratico.
    Ho un bean che ad una stringa aggiunge un numero.
    Poi ho un altro bean che ad una stringa aggiunge una lettera.
    Poi ho un altro bean che ad una stringa aggiunge un segno.

    Io NON voglio dover richiamare tre bean così:
    codice:
    <jsp:useBean id="bean1" class="numero"/>
    <jsp:useBean id="bean2" class="lettera"/>
    <jsp:useBean id="bean3" class="segno"/>
    Voglio richiamare solo il primo bean, al quale passo la stringa, e poi da quel bean chiamare il secondo bean, dal secondo bean chiamare il terzo bean.

    In questo modo se avessi 100 bean da utilizzare, potrei fare solo una chiamata al primo bean nella pagina jsp, e non dovrei fare 100
    codice:
    <jsp:useBean id=" class=""/>
    Capito il senso?

  5. #5
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Non mi ritrovo... io non uso i bean per fare logica, ma solo per trasportare dati. La logica non la farei ne' in pagina e neppure nei bean...

    A quale framework ti appoggi? Struts, JSF, ... , nessuno?

    Se i metodi dei tuoi bean non sono statici, devi aver modo di recuperarli dal contesto in cui si trovano (session, request, application), quindi all'interno di ciascun bean, quel contesto deve essere visibile.
    Ad esempio, se i tuoi bean sono tutti in request, allora ciascuno deve poter vedere la request per poter recuperare il successivo e invocarne il metodo desiderato.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    Allora, i bean in questione non esistono ancora, sto solo cercando i capire se quello che voglio fare è possibile, quindi non so se sono in session, request ecc.


    Io in una pagina jsp, per usare un metodo in un bean devo fare cosi:
    codice:
    <jsp:useBean id="Id_Bean" class="nomeclasse"/> <----- istanzio il bean
    Id_Bean.Nome_Metodo_Che_Sta_Nella_Classe();  <----- richiamo il metodo
    Io vorrei fare questa 'operazione' dentro un bean, 'immaginando' un codice 'simile' a questo:
    codice:
    import Package_Coi_Miei_BEan.Bean_Con_Metodo_Che_Voglio_Richiamare; <--- importo il bean
    
    public class nomeclasse{
    
    Bean_Con_Metodo_Che_Voglio_Richiamare.Nome_Metodo_Che_Sta_Nella_Classe();
    
    }

    Capito che intendo?
    Io voglio caèpire se è possibile, poi vedrò che tipo di scope deve esserci ecc ecc.

  7. #7
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Originariamente inviato da matpirata
    Io voglio caèpire se è possibile, poi vedrò che tipo di scope deve esserci ecc ecc.
    Certo che è possibile, però:

    Pastore 12
    Se i metodi dei tuoi bean non sono statici, devi aver modo di recuperarli dal contesto in cui si trovano (session, request, application), quindi all'interno di ciascun bean, quel contesto deve essere visibile.
    e inoltre

    Pastore 12
    La logica non la farei ne' in pagina e neppure nei bean...

    Originariamente inviato da matpirata
    Io vorrei fare questa 'operazione' dentro un bean, 'immaginando' un codice 'simile' a questo:
    Ma si tratta di un metodo statico o dinamico? Perché se è statico, allora il codice è 'identico' a quello che hai scritto, se è dinamico è un po' più complicato, perché devi recuperare l'istanza del bean.

    Se lo scope del bean chiamato è request, significa che il bean chiamante deve accedere alla request, e per poter far questo deve avere un opportuno sistema che gliela fornisca.
    Se il tuo framework non lo prevede, allora occorre un setter, che dovrai chiamare prima che il codice del bean chiamante vada in esecuzione e con la request valida in cui si trova il bean chiamato.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    Non so come identificare il framework.
    Per esigenze particolari, sto studiando nei momenti liberi JSP, senza aver mai lavorato in java. Probabilmente le mie domande e le mie risposte ti sembreranno stupide o incomplete proprio per questo motivo. Alcune cose che per te sono scontate, per me sono sconosciute

    Il secondo bean, che viene chiamato dal primo bean, ha un metodo statico (ammesso che lo abbia scritto correttamente).
    Ti posto il codice per farti capire meglio.

    bean 1, che richiama il bean 2
    codice:
    package Riepilogo;
    import Riepilogo.ControlloCaratteri; <--- ControlloCaratteri è il file java nel quale c'è il metodo Caratteri()
    
    public  class  RiepilogoDati 
         {
         Riepilogo.ControlloCaratteri.Caratteri(); <--- il problema sta qui
         }
    bean 2, richiamato da bean 1
    codice:
    package Riepilogo;
    
    public class ControlloCaratteri
        {
        static String EsitoCaratteri;
    
        public static String Caratteri()
              {
               StringaDaAnalizzare	= StringaDaAnalizzarePassata;
               EsitoCaratteri = "prova";
               return EsitoCaratteri;	
              }
        }

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    Ci sono riuscito. Quello che mi mancava era definire il metodo del bean chiamato come Static.
    Grazie per l'aiuto e per la pazienza

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 © 2024 vBulletin Solutions, Inc. All rights reserved.