2012-06-23 3 views
0

Я пытаюсь встроить метод автозаполнения поверхностей в составном компоненте.PrimeFaces Dropdown AutoComplete внутри составного компонента

Однако при попытке доступа к «полному» методу он не работает.

Вот мой код:

.. 
<composite:interface> 
    <composite:attribute name="car" required="true" /> 
    <composite:attribute name="brandList" required="true" method-signature="java.util.List complete(java.lang.String)" /> 
    <composite:attribute name="style" required="false" /> 
</composite:interface> 

<composite:implementation> 
    .. 

    <h:outputLabel value="DropDown :" for="dd" /> 
    <p:autoComplete id="dd" dropdown="true" value="#{cc.attrs.car.brand}" completeMethod="#{cc.attrs.brandList}" /> 
    .. 
</composite:implementation> 

И призыв:

<cp:carPropertiesAutoComplete car="#{carController.car}" brandList="#carController.complete}" /> 

И подкладочный боб:

public List<String> complete(String query) { 
    List<String> brandList = new ArrayList<String>(); 

    brandList.add("brand0"); 
    brandList.add("brand1"); 

    for (String brand : brandList) { 
    if(brand.contains(query)) { 
     brandList.add(brand); 
    } 
    } 
    return brandList; 
} 

И журнал:

ПРЕДУПРЕЖДЕНИЕ: /newCarAutoComplete.xhtml @ 17,112 brandList = "# {carController.complete}": Класс CarController не имеет свойства 'complete'. javax.el.PropertyNotFoundException: /newCarAutoComplete.xhtml @ 17,112 brandList = "# {carController.complete}": Класс CarController не имеет свойства 'complete'. в com.sun.faces.facelets.el.TagValueExpression.getValue (TagValueExpression.java:111) в com.sun.faces.facelets.el.ContextualCompositeMethodExpression.invoke (ContextualCompositeMethodExpression.java:190) в ком. sun.faces.facelets.tag.TagAttributeImpl $ AttributeLookupMethodExpression.invoke (TagAttributeImpl.java:450) на org.primefaces.component.autocomplete.AutoComplete.broadcast (AutoComplete.java:340) в javax.faces.component. UIViewRoot.broadcastEvents (UIViewRoot.java:794) по адресу javax.faces.component.UIViewRoot.processDecodes (UIViewRoot.java:935) по адресу com.sun.faces.lifecycle.Ap plyRequestValuesPhase.execute (ApplyRequestValuesPhase.java:78) в com.sun.faces.lifecycle.Phase.doPhase (Phase.java:101) в com.sun.faces.lifecycle.LifecycleImpl.execute (LifecycleImpl.java:118) на javax.faces.webapp.FacesServlet.service (FacesServlet.java:593) при org.apache.catalina.core.StandardWrapper.service (StandardWrapper.java:1542) в org.apache.catalina.core.StandardWrapperValve .invoke (StandardWrapperValve.java:281) на org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:175) на org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:655) по адресу org.apache.cat alina.core.StandardPipeline.invoke (StandardPipeline.java:595) на org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:161) на org.apache.catalina.connector.CoyoteAdapter.doService (CoyoteAdapter.java:331) на org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:231) в com.sun.enterprise.v3.services.impl.ContainerMapper $ AdapterCallable.call (ContainerMapper. Java: 317) на com.sun.enterprise.v3.services.impl.ContainerMapper.service (ContainerMapper.java:195) на com.sun.grizzly.http.ProcessorTask.invokeAdapter (ProcessorTask.java:849) в com.sun.grizzly.http.ProcessorTask.doProcess (ProcessorTask.Java: 746) на com.sun.grizzly.http.ProcessorTask.process (ProcessorTask.java:1045) в com.sun.grizzly.http.DefaultProtocolFilter.execute (DefaultProtocolFilter.java:228) в ком .sun.grizzly.DefaultProtocolChain.executeProtocolFilter (DefaultProtocolChain.java:137) на com.sun.grizzly.DefaultProtocolChain.execute (DefaultProtocolChain.java:104) на com.sun.grizzly.DefaultProtocolChain.execute (DefaultProtocolChain.java : 90) по адресу com.sun.grizzly.http.HttpProtocolChain.execute (HttpProtocolChain.java:79) по адресу com.sun.grizzly.ProtocolChainContextTask.doCall (ProtocolChainContextTask.java:54) на com.sun.grizzly.SelectionKeyContextTask.call (SelectionKeyContextTask.java:59) на com.sun.grizzly.ContextTask.run (ContextTask.java:71) при com.sun.grizzly .util.AbstractThreadPool $ Worker.doWork (AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool $ Worker.run (AbstractThreadPool.java:513) at java.lang.Thread.run (Thread. Java: 722)

Я гугл вокруг и нашел это (ту же проблему с нерешаемостью) http://forum.primefaces.org/viewtopic.php?f=3&t=1884

Я бегу Glassfish server 3.1.2 с Mojarra 2.1.6 и PrimeFaces 3.3.1

Не могли бы вы помочь мне? Я боролся с этим в течение нескольких часов = (

ответ

1

Почему вы не создать свой полный метод в @FacesComponent? И затем использовать {cc.brandList} не {} cc.attrs.brandList