java - p :ajax passes null instead of value 中监听器的 InputText 值

标签 java mysql ajax

我试图将 inputText 的值获取到由 p: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);
    }

就像魅力一样。

有时你需要思考才能得到答案......

关于java - p :ajax passes null instead of value 中监听器的 InputText 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39735445/

相关文章:

mysql - Wordpress SQL 查询产品 X 的用户名字和姓氏?

php - 如何用PHP和Flex实现虚拟文件系统?

jquery - 如何为 jQuery 回调绑定(bind) "this"?

javascript - 为什么settimeout不延迟函数执行?

java - 如何以字符串形式将数字添加到数组?

java - 如何比较图表中的指标?指标重新加载

php - 对 mysql_fetch_array 内的数组进行排序

javascript - Ajax 请求不中止

java - 我们如何使用 JAVA 下载 HTML 页面?

java - 以 mips 为单位传递参数