Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    10

    [JAVA] JSF - passaggio di parametri

    Buona sera a tutti,
    innanzitutto mi scuso se ho sbagliato sezione in caso chiedo di essere spostato.
    Sono alle prime esperienze con JSF, in particolare sto usando una sua estensione Primefaces: in una form ho inserito questa porzione di codice
    codice:
    <p:selectOneMenu id="nomiPazienti" value="#{visualizzaPazienti.paziente.codiceFiscale}" effect="fade" style="width: 183px">
    <f:selectItem itemLabel="Seleziona un paziente" itemValue=""/>
    <f:selectItems value="#{visualizzaPazienti.nomiPazienti}" var="paziente" itemLabel="#{paziente.codiceFiscale}" itemValue="#{paziente.codiceFiscale}"/>                                 </p:selectOneMenu>
    che praticamente mi crea un menu a tendina con l'elenco dei codici fiscali dei pazienti presenti sul database.
    Il metodo del Bean che gestisce la richiesta è
    codice:
    public List<Paziente> getNomiPazienti() {
     PazienteDAO pazienteDAO = new PazienteDAO();
    try {             
      pazienti = pazienteDAO.nomiPazienti();         
    } catch (Exception ex) {               
    Logger.getLogger(VisualizzaPazienti.class.getName()).log(Level.SEVERE, null, ex);         }                
    return pazienti;     
    }
    e poi c'è la classe PazienteDAO che effettua la query al database MySQL.
    Fino a qui tutto ok; il problema è che vorrei il parametro del valore selezionato dal menu a tendina, cioè la stringa che rappresenta il codice fiscale, perchè devo passarlo ad un altro bean nominato ricercaAvanzataController.
    Nella stessa form di prima ho il pulsante
    codice:
    <h:panelGroup>
    <p:commandButton type="push" value="Esegui" action="#{ricercaAvanzataController.createChart()}" update="growl1"/>
    </h:panelGroup>
    Premendo il pulsante "Esegui" richiamo il metodo ricercaAvanzataController.createChart(), ed è proprio qui che voglio passare quel parametro.

    Spero di essermi spiegato, vi prego di aiutarmi perchè so che è una s*****ata ma non sono ancora pratico con JSF.

  2. #2
    Si in effetti è una cavolata fare quello che vuoi fare.
    Infatti ti basta inserire un f:setPropertyActionListener nel commandButton in modo da prendere il valore che ti interessa nel bean "visualizzaPazienti" e "portarlo" nell'altro bean.
    Es.
    codice:
    <p:commandButton type="push" value="Esegui" action="#{ricercaAvanzataController.createChart()}" update="growl1">
    <f:setPropertyActionListener target="#{ricercaAvanzataController.propertyName1}" value="#{visualizzaPazienti.propertyValue1}" />
    </p:commandButton>

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    10
    Ciao, intanto grazie per l'aiuto, ma potresti essere più esplicito?
    propertyName1 e propertyValue1 sono metodi che devo implementare nel Bean? Come vanno fatti?
    Il parametro che mi interessa è generato dal selectOneMenu e non dal commandButton, non riesco a capire

  4. #4
    Non mi piace molto scrivere codice per gli altri, ma per questa volta faccio un eccezione :
    codice:
    <p:commandButton type="push" value="Esegui" action="#{ricercaAvanzataController.createChart()}" update="growl1">
    <f:setPropertyActionListener target="#{ricercaAvanzataController.codiceFiscale}" value="#{visualizzaPazienti.paziente.codiceFiscale}" />
    </p:commandButton>
    Ovviamente dovrai dichiarare (#{ricercaAvanzataController.codiceFiscale}) in ricercaAvanzataController una proprietà codiceFiscale.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    10
    Per proprietà intendi metodi get e set giusto?
    Rimane che da dirmi come richiamare questo parametro dal metodo createChart() di RicercaAvanzataController, sto provando ma non riesco..

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    10
    Quello che non funziona è value="#{visualizzaPazienti.paziente.codiceFiscale }"
    perchè se invece metto una Stringa funziona tutto, ma così com'è non prende il codice fiscale selezionato dal selectOneMenu

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.