繁体   English   中英

来自p:ajax中的侦听器的InputText值传递null而不是value

[英]InputText value from a listener in p:ajax passes null instead of value

我试图将inputText的值输入到ap:ajax中的侦听器调用的方法中,但它始终传递null并无法找出原因。 有任何想法吗? 我真的很感谢可以在这里提供的帮助。

这是我的代码:

   <!-- 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>

这是我的Bean代码:

  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 NM_TRABAJADOR@INFOCENT_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);
    }

当我发布此内容时,我花了很多时间在互联网上进行研究,并使用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 NM_TRABAJADOR@INFOCENT_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);
    }

奇迹般有效。

有时您需要大声思考才能得到答案...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM