2016-09-27 2 views
0

imはp:ajaxのリスナーによって呼び出されるメソッドにinputTextの値を取得しようとしていますが、常にnullを渡し、何か案は?私は本当にここに与えることができるヘルプを賞賛するだろう。p:ajaxのリスナーからのInputText値は、値の代わりにnullを返します。

HERESに私のコード:

<!-- Panel -->  
<div class="panel panel-info"> 
<div class="panel-body"> 
<p:panel id="panel" widgetVar="panelwv" header="#{msg.shametastit}" toggleable="true" collapsed="true" style="white-space: normal;">  
<div class="pull-right"><a HREF="http://www.openbizview.com/wiki/doku.php?id=reportes" target="_new" title="Wiki"><i class="fa fa-file-text text-info"></i></a></div>   
    <div class="row"> 
    <div class="col-lg-4 col-md-4 col-sm-4"> 
      <p:inputText id="numtrabajadores" styleClass="spacing" maxlength="5" required="true" requiredMessage="#{bd.getMessage('htmlvalidate')}" value="#{shametas.numtrabajadores}" converter="javax.faces.BigDecimal" converterMessage="#{bd.getMessage('htmlvalidatenum')}"/>  
      <p:watermark for="numtrabajadores" value="#{msg.shametasnum}" /> 
      <p:spacer height="1"/> 
      <p:message for="numtrabajadores"/> 
      <p:autoComplete id="sucursal" styleClass="spacing2" value="#{shametas.sucursal}" required="true" requiredMessage="#{bd.getMessage('htmlvalidate')}" emptyMessage="#{msg.html138}" completeMethod="#{autocomplete.completeCentop}" valueChangeListener="#{bd.setSucursal(shametas.sucursal)}" dropdown="true" scrollHeight="250"> 
      <p:ajax event="itemSelect" update="tbResult" listener="#{bd.setSucursal(shametas.sucursal)}" />  
      <p:ajax event="itemSelect" update="headcount, promedio" listener="#{shametas.onselectSuc()}" /> 
      </p:autoComplete> 
      <p:watermark for="sucursal" value="#{msg.shametassuc}" /> 
      <p:spacer height="1"/> 
      <p:message for="sucursal"/> 
    </div> 
    </div> 
    <h:inputHidden id="vop" value="#{shametas.validarOperacion}"/> 
    </p:panel> 
</div> 
</div> 

そして、ここでは私の豆コードです:

public void onselectSuc(String pnum) { 
     if(sucursal==null){ 
     sucursal = " - "; 
     } 
     String[] vecsuc = sucursal.split("\\ - ", -1); 

     //Consulta que hace la seleccion automatica para los inputtext de los empelados, valores nombre completo, genero, cargo!!! 

     System.out.println("numtrabajadores: " + numtrabajadores); 
     //System.out.println("anio: " + anio); 
     //System.out.println("mes: " + mes); 
    String query = " SELECT COUNT(A.FICTRA) AS HEADCOUNT, TRUNC(" + numtrabajadores + "/COUNT(A.FICTRA),2) AS PROMEDIO"; 
      query += " FROM [email protected]_CALENDARIO A"; 
      query += " WHERE A.CODSUC like '" + vecsuc[0].toUpperCase() + "%'"; 
      query += " AND A.FECRET IS NULL "; 
      query += " ORDER BY 1"; 

     PntGenerica select = new PntGenerica(); 
      try { 
      select.selectPntGenerica(query,JNDIDESA); 
     } catch (NamingException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
      int rows = select.getRows(); 
      String vltabla[][] = select.getArray(); 
      if(rows>0){ 
      zuno = vltabla[0][0]; 
      zdos = vltabla[0][1]; 
      //ztres = vltabla[0][2]; 
      } 
      System.out.println(query); 
      //System.out.println("zuno:" + zuno); 
      //System.out.println("zuno:" + zdos); 
      //System.out.println("zuno:" + ztres); 
    } 

答えて

0

私はこの投稿を通り、私はインターネット上での研究時間の束を持っていたし、私は私の解決策を見つけました問題のHttpServletRequestを使用して、ここでそれが更新さBeanです:魔法のように

public void onselectSuc() {  

     if(sucursal==null){ 
     sucursal = " - "; 
     } 

     String[] vecsuc = sucursal.split("\\ - ", -1); 


     HttpServletRequest rq = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); 
     String ntrabajador = rq.getParameter("formshametas:numtrabajadores"); 
     //Consulta que hace la seleccion automatica para los inputtext de los empelados, valores nombre completo, genero, cargo!!! 

     System.out.println("numtrabajadores: " + ntrabajador); 

     //System.out.println("anio: " + anio); 
     //System.out.println("mes: " + mes); 
    String query = " SELECT COUNT(A.FICTRA) AS HEADCOUNT, CASE WHEN COUNT(A.FICTRA) = 0 THEN 0 WHEN COUNT(A.FICTRA) IS NULL THEN 0 ELSE TRUNC(" + ntrabajador + "/COUNT(A.FICTRA),2) END AS PROMEDIO"; 
      query += " FROM [email protected]_CALENDARIO A"; 
      query += " WHERE A.CODSUC like '" + vecsuc[0].toUpperCase() + "%'"; 
      query += " AND A.FECRET IS NULL "; 
      query += " ORDER BY 1"; 

     PntGenerica select = new PntGenerica(); 
      try { 
      select.selectPntGenerica(query,JNDIDESA); 
     } catch (NamingException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
      int rows = select.getRows(); 
      String vltabla[][] = select.getArray(); 
      if(rows>0){ 
      zuno = vltabla[0][0]; 
      zdos = vltabla[0][1]; 
      //ztres = vltabla[0][2]; 
      } 
      System.out.println(query); 
      //System.out.println("zuno:" + zuno); 
      //System.out.println("zuno:" + zdos); 
      //System.out.println("zuno:" + ztres); 
    } 

作品。

場合によっては、答えを得るために大声で考える必要があります。

関連する問題