postgresql - dataTable doesn't show list -


this question has answer here:

i'm trying render list of products in .xhtml page, database in postgres: i'm using jsf tag h:datatable. unfortunately, when display page, message "the catalogue empty", seems can't values database. page i'm talking about:

<f:metadata>     <f:viewparam id="prodotto_id" name="id" value="#{prodotto.id}"         required="true"         requiredmessage="invalid page access. please use link within system."/> </f:metadata> <h:message for="prodotto_id" />  <h:head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>catalogo</title> </h:head> <h:body>     <h2>catalogo prodotti</h2>     <h:form>         <h:outputtext value="the catalogue empty."             rendered="#{empty prodottocontroller.prodotti}" />         <h:datatable value="#{prodottocontroller.prodotti}" var="prodotto"             rendered="#{not empty prodottocontroller.prodotti}">             <h:column>                 <f:facet name="header">nome</f:facet>                 <h:commandlink action="#{prodottocontroller.findprodotto}"                     value="#{prodotto.nome}" style="color: orange">                     <f:param name="id" value="#{prodotto.id}" ></f:param>                 </h:commandlink>             </h:column>             <h:column>                 <f:facet name="header">prezzo per unità</f:facet>                 <h:outputtext value="#{prodotto.prezzo}" />             </h:column>             <h:column>                 <f:facet name="header">codice</f:facet>                 <h:outputtext value="#{prodotto.codice}" />             </h:column>             <h:column>                 <f:facet name="header">quantità in magazzino</f:facet>                 <h:outputtext value="#{prodotto.quantita}" />             </h:column>             <h:column>                 <f:facet name="header"></f:facet>                 <h:commandbutton action="/newrigaordine.xhtml?faces-redirect=true"                     value="aggiungi all'ordine"                     rendered="#{not empty logincliente.clienteloggato.email                                  , empty loginadmin.admin.email}">                 </h:commandbutton>             </h:column>             <h:column>                 <f:facet name="header"></f:facet>                 <h:commandbutton action="#{prodottocontroller.deleteprodotto}"                     value="elimina prodotto"                     rendered="#{not empty loginadmin.admin.email , empty logincliente.clienteloggato.email}">                     <f:param name="id" value="#{prodotto.id}" />                 </h:commandbutton>             </h:column>         </h:datatable>         <h:outputlink value="formcreaprodotto.xhtml?faces-    redirect=true"             rendered="#{not empty loginadmin.admin.email , empty    logincliente.clienteloggato.email}">aggiungi un prodotto al catalogo</h:outputlink>     </h:form> </h:body> </html> 

this prodottocontroller managed bean:

 @managedbean (name="prodottocontroller") @viewscoped public class prodottocontroller implements serializable {       private static final long serialversionuid = 1l;       private long id;      private string nome;     private float prezzo;     private string descrizione;     private string codice;     private int quantita;      private string errore;      private prodotto prodotto;     private list<prodotto> prodotti;      @ejb (beanname="pfacade")     private prodottofacade pfacade;        public string creaprodotto() {         try {             this.prodotto = pfacade.creaprodotto(nome, codice, descrizione, prezzo, quantita);             return "newprodotto";              }         catch (exception e) {             errore="prodotto già esistente sul database. per favore inserisci un prodotto con codice differente";             return errore;          }     }      public string listprodotti() {         this.prodotti = pfacade.getcatalogoprodotti();         return "showprodotti";      }      public string findprodotto() {         this.prodotto = pfacade.getprodottobyid(id);         return "showprodotto";     }      public string deleteprodotto() {            pfacade.deleteprodottobyid(id);         return "showprodotti";     } //getters , setters 

and facade method getcatalogoprodotti() :

public list<prodotto> getcatalogoprodotti() {      try {         typedquery<prodotto> q = em.createquery("select p prodotto p", prodotto.class);         return q.getresultlist();      }      catch (exception e) {         string q = "la lista è vuota";         system.out.println(q);         return null;         }     } 

so, doing wrong?? after hours , hours of studying , searching don't know do...

i've found solution guys! hope helps had same problem.

i added this

    @postconstruct public void init() {     prodotti = pfacade.getcatalogoprodotti(); }  

in prodottocontroller bean, , shows products on database!! postconstruct must used everytime use viewscoped bean, i've read across internet. uh, , entity class "prodotto" has implement serializable.


Comments

Popular posts from this blog

Magento/PHP - Get phones on all members in a customer group -

php - Bypass Geo Redirect for specific directories -

php - .htaccess mod_rewrite for dynamic url which has domain names -