i have form user should enter values info web service. firstly user fulfills form , clicks request button webservice called. until here works nicely. webservice returns info, have re-render datatable new data. here page:
<h:body> <h:form id="formcus"> <h:outputlabel value="müşteri tipi: *"/> <p:selectonemenu id="customertype" value="#{customerservice.musteritipi}" style="width: 39%"> <f:selectitem itemlabel="" itemvalue=" " /> <f:selectitem itemlabel="bireysel" itemvalue="bireysel" /> <f:selectitem itemlabel="tüzel" itemvalue="tuzel" /> <f:selectitem itemlabel="yabancı" itemvalue="yabanci" /> <p:ajax event="change" update="#{customerservice.musteritipi}"/> </p:selectonemenu> <h:outputlabel value="ad/firma adı: *" for="customername" /> <p:inputtext id="customername" value="#{customerservice.adfirmaadi}" title="müşteri adı." > <p:ajax event="change" update="#{customerservice.adfirmaadi}" /> </p:inputtext> <h:outputlabel value="soyad/Ünvan: *" for="customersurname" /> <p:inputtext id="customersurname" value="#{customerservice.soyadunvan}" title="müşteriye ait soyad/ünvan." > <p:ajax event="change" update="#{customerservice.soyadunvan}" /> </p:inputtext> <h:outputlabel value="tc kimlik no: *" /> <p:inputtext id="customertc" value="#{customerservice.tckimlikno}" title="tc kimlik numarasını buraya girin.tc numarası sadece sayılardan oluşmalıdır." > <p:ajax event="change" update="#{customerservice.tckimlikno}" partialsubmit="true" process="@this"/> </p:inputtext> <h:outputlabel value="vergi no:" /> <p:inputtext id="customervergi" value="#{customerservice.vergino}" title="tc kimlik numarasını buraya girin.tc numarası sadece sayılardan oluşmalıdır." > <p:ajax event="change" update="#{customerservice.vergino}" partialsubmit="true"/> </p:inputtext> <h:outputlabel value="müdürlük kodu: *" /> <p:inputtext id="departmantid" value="#{customerservice.mudurlukkodu}" title="müdürlük kodunu buraya girin.müdürlük kodu sadece sayılardan oluşmalıdır." > <p:ajax event="change" update="#{customerservice.mudurlukkodu}" partialsubmit="true"/> </p:inputtext> <h:outputlabel value="müşteri kodu: " /> <p:inputtext id="customerid" value="#{customerservice.musterikodu}" title="müdürlük kodunu buraya girin.müdürlük kodu sadece sayılardan oluşmalıdır." > <p:ajax event="change" update="#{customerservice.musterikodu}" /> </p:inputtext> <h:outputlabel value="e-posta adresi: " /> <p:inputtext id="customermail" value="#{customerservice.mail}" title="müşteriye ait e-mail adresini buraya girin." > <p:ajax event="change" update="#{customerservice.mail}" partialsubmit="true"/> </p:inputtext> <h:outputtext value=" "/> <p:commandbutton id="query" value="müşteri sorgula" actionlistener="#{customerservice.request}" async="true" onsuccess="panelwv.show()"> <f:ajax execute="@form" render=":personlist" ></f:ajax> </p:commandbutton> </h:form> <h:panelgrid columns="5"> <h:outputtext value=""/> <h:outputtext value=""/> <p:panel widgetvar="panelwv" visible="false" closable="true" header="sorgu yapılıyor..."> <p:graphicimage value="/resources/images/ajaxloadingbar.gif" /> </p:panel> <h:outputtext value=""/> <h:outputtext value=""/> </h:panelgrid> <h:outputtext value="bulunan müşterilere ait bilgiler:" /> <h:form id="personlist" rendered="#{not empty customerservice.musterikodu}"> <p:datatable value="#{customerservice.customer}" var="item" id="persontable" emptymessage="henüz müşteri eklemediniz."> <p:column headertext="müşteri/firma id"> #{item.customerid} </p:column> <p:column headertext="ad/firma adı"> #{item.customername} </p:column> <p:column headertext="soyad/Ünvan" > #{item.customersurname} </p:column> <p:column headertext="müşteri tipi" > #{item.customertype} </p:column> <p:column headertext="telefon" > #{item.customertel} </p:column> <p:column headertext="adres"> #{item.customeraddress} </p:column> <p:column headertext="e-posta"> #{item.customermail} </p:column> </p:datatable> </h:form> </h:body> and here bean:
//some getter , setters list<customers> customer = new arraylist<customers>(); public list<customers> getcustomer() { return customer; } public void setcustomer(list<customers> customer) { this.customer = customer; } public string request() { final requestcontext context = requestcontext.getcurrentinstance(); //system.out.println("progress..."); //musterisorgula(musterisorgulakriter()); new thread(new runnable() { public void run() { try { musterikodu = string.valueof(musterisorgula(musterisorgulakriter()).getmusteribilgisi().getmusterikodu()); list<telefonbilgisi> tel_result = telefonsorgula(telefonsorgulakriter(musterikodu)).getmusteritelefonlistesi(); //telefon = tel_result.getmusteritelefonlistesi().get(0).gettelefonno(); if (tel_result.size() > 0) { (telefonbilgisi t : tel_result) { telefon = t.gettelefonno(); } } else { telefon = "no telephone."; } list<uavtadresbilgisi> uavt_result = uavtadressorgula(uavtadressorgulakriter(musterikodu)).getmusteriuavtadreslistesi(); if (uavt_result.size() > 0) { (uavtadresbilgisi u : uavt_result) { adres = string.valueof(u.getsehir()) + ", " + string.valueof(u.getbucak()) + ", " + string.valueof(u.getkasaba()); } } else { adres = "no address."; } customers cust = new customers(musteritipi, biginteger.valueof(long.valueof(musterikodu)), adfirmaadi, soyadunvan, telefon, adres, mail, projectid); if (!customer.contains(cust)) { customer.add(cust); system.out.println("customer has been added."); } else { system.out.println("customer still in list."); } } catch (exception ex) { logger.getlogger(customerservice.class.getname()).log(level.severe, null, ex); context.execute("alert('try again.')"); } } }).start(); context.execute("panelwv.close()"); return ""; } the bean connect webservice , gether info, can see in logs. in beginning datatable empty. want show new data webservice responses. context.update("personlist") doesn't work when place below:
customer.add(cust); if me appriciated.
<f:ajax execute="@form" render=":personlist" ></f:ajax> make change
<f:ajax execute="@form" update="persontable" render=":personlist" ></f:ajax>
Comments
Post a Comment