自动完成方法不会被调用到UI:组成

问题描述:

我使用primefaces为框架,使用自动完成。自动完成方法不会被调用到UI:组成

如果我只用primefaces 没有组成它工作得很好

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"  xmlns:f="http://xmlns.jcp.org/jsf/core"  xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> <h:head> <link href="https://fonts.googleapis.com/icon?family=Material+Icons"  rel="stylesheet" />  <h:outputStylesheet name="css/materialize.css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Template</title> </h:head> <h:body class="blue-grey lighten-4">  <ui:include src="cabecalho.xhtml" /> 

    <h:messages id="erromsg" fatalClass="alert alert-danger"  errorClass="alert alert-danger" infoClass="alert alert-info"  warnClass="alert alert-warning" /> 

    <ui:insert name="corpo" /> 

    <ui:include src="/rodape.xhtml" />  <h:outputScript name="js/jquery-2.1.1.js" /> <h:outputScript name="js/mask/jquery.inputmask.bundle.js" /> <h:outputScript name="js/mask/phone.js" /> <h:outputScript name="js/mask/phone-be.js" /> <h:outputScript name="js/mask/phone-ru.js" /> <h:outputScript name="js/materialize.js" />  <script> 
     //Select 
     $(document).ready(function() { 
      $('select').material_select(); 
     }); 
       //Carosel  $('.carousel.carousel-slider').carousel({   fullWidth : true,  });   autoplay(); 

     function autoplay() {   $('.carousel').carousel('next');   setTimeout(autoplay, 4500);   } 

     //Menu-Mobile  $(".button-collapse").sideNav();  //Dropdown  $(".dropdown-button").dropdown(); 

     $(document).on("ready",function(){ 
      $(".ui-paginator-first.ui-state-default.ui-corner-all").addClass("btn"); 
      $(".ui-paginator-last.ui-state-default.ui-corner-all").addClass("btn"); 
      $(".ui-paginator-next.ui-state-default.ui-corner-all").addClass("btn"); 
      $(".ui-paginator-prev.ui-state-default.ui-corner-all").addClass("btn"); 

     }); 
       </script> </h:body> </html> 

我使用物化作为我的框架前端。

我的测试页面:

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://xmlns.jcp.org/jsf/html" 
    xmlns:f="http://xmlns.jcp.org/jsf/core" 
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets" 
    xmlns:pt="http://xmlns.jcp.org/jsf/passthrough" 
    xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" 
    xmlns:p="http://primefaces.org/ui"> 
<h:head> 
    <title>Title</title> 
</h:head> 
<h:body> 
    <ui:composition template="_template.xhtml"> 
     <ui:define name="corpo"> 
      <div class="container"> 
        <p:autoComplete id="autocomplete" 
         value="#{manterProdutoBean.descMarca}" 
         completeMethod="#{manterProdutoBean.completeMarca}" 
         forceSelection="true" required="true" 
         requiredMessage="Informe a marca!" maxResults="3"> 
         <p:ajax event="query" /> 
        </p:autoComplete> 
        <br /> 
        <p:outputLabel value="Max Results(5):" for="acMaxResults" /> 
        <p:autoComplete id="acMaxResults" maxResults="5" 
         value="#{manterProdutoBean.descMarca}" 
         completeMethod="#{manterProdutoBean.completeText}"> 
         <p:ajax event="query" /> 
        </p:autoComplete> 
      </div> 
     </ui:define> 
    </ui:composition> 
</h:body> 
</html> 

当我使用的成分,我的completemethod从不打电话。

你能帮助我,好吗?

真诚,

+0

欢迎来到Stack Overflow!我编辑了你的文字,以强调文字风格的问题。祝你好运! – user7294900

您的问题不是关于组成...

你需要一些这样的:

public List<String> complete(String query){ 
    // Assumed Datasource 
    return ds.queryByName(query); 
} 

应用在你的代码:

public List<Marca> completeText(String name){ 
    return marcaService.queryByName(name); 
} 

而且在您的xhtml:

<p:autoComplete value="#{manterProdutoBean.descMarca}" 
    completeMethod="#{manterProdutoBean.completeText()}" 
    var="marca" 
    itemValue="#{marca.id}" 
    itemLabel="#{marca.descricao}"> 
</p:autoComplete> 

如果你需要执行一些选定项目后,您可以使用:

<p:ajax event="itemSelect" /> 
+0

_“我认为'

'不存在,删除它” _请不要“想” ......当然,阅读文档,请尝试......这**是否存在,并且**在没有组合的情况下使用**,OP表示 – Kukeltje
+0

如果答案不完美,它被认为是完全没有效率的?它给人的印象是根本没有帮助......没问题,我将继续努力。 –

+0

那么,答案与矛盾是什么OP说。这很不幸,使之更难以评估答案的其余部分语句开始。特别是如果在有另一种说法是有点不对。但真正的努力表示赞赏 – Kukeltje

伙计们感谢您的帮助!我找到了解决方案!我导入了2个jquery,一个来自primefaces,另一个来自实现!我禁用了jQuery实现,并开始工作!谢谢大家!