2017-04-12 91 views
0

英語:與primefaces java.lang.IllegalArgumentException異常JSF複合材料部件的dataTable 葡萄牙語:java.lang.IllegalArgumentException異常componente composto JSF dataTable的COM做primefacesjava.lang.IllegalArgumentException異常JSF複合材料部件

tabela-padrao。 XHTML

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:cc="http://xmlns.jcp.org/jsf/composite" 
    xmlns:c="http://java.sun.com/jsp/jstl/core" 
    xmlns:p="http://primefaces.org/ui" 
    xmlns:f="http://xmlns.jcp.org/jsf/core" 
    xmlns:h="http://xmlns.jcp.org/jsf/html"> 

<!-- INTERFACE --> 
<cc:interface> 
    <cc:attribute name="uniqueId" required="true" /> 
    <cc:attribute name="value" required="true" /> 
    <cc:attribute name="var" required="true" /> 
    <cc:attribute name="selection" required="true" /> 
    <cc:attribute name="exportedFileName" required="true" /> 
    <cc:attribute name="renderedTable" default="true"/> 
    <cc:attribute name="primaryKey" required="true"/> 
    <cc:clientBehavior name="customRowSelectEvent" targets="#{cc.attrs.uniqueId}" event="rowSelect" /> 
    <cc:clientBehavior name="customRowUnselectEvent" targets="#{cc.attrs.uniqueId}" event="rowUnselect" /> 
</cc:interface> 

<!-- IMPLEMENTATION --> 
<cc:implementation> 
    <p:dataTable value="#{cc.attrs.value}" 
       id="#{cc.attrs.uniqueId}" 
       scrollable="true" 
       scrollWidth="100%" 
       var="#{cc.attrs.var}" 
       rendered="#{cc.attrs.renderedTable}" 
       selection="#{cc.attrs.selection}" 
       rowKey="#{cc.attrs.primaryKey}"            
       selectionMode="single" 
       paginator="true" 
       rowsPerPageTemplate="15,30,45" 
       paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown} {Exporters}" 
       emptyMessage="#{bundle.tabela_nenhum_registro_encontrado}"> 
     <cc:insertChildren/> 
     <f:facet name="{Exporters}"> 
      <h:commandLink style="padding: 5px 5px 5px 5px ;" title="Converter para Excel" >            
       <h:outputText styleClass="fa fa-file-excel-o Fs20"/> 
       <p:dataExporter type="xls" target="#{cc.attrs.uniqueId}" fileName="#{cc.attrs.exportedFileName}" /> 
      </h:commandLink> 
      <h:commandLink style="padding: 5px 5px 5px 5px ;" title="Converter para PDF" > 
       <h:outputText styleClass="fa fa-file-pdf-o Fs20"/> 
       <p:dataExporter type="pdf" target="#{cc.attrs.uniqueId}" fileName="#{cc.attrs.exportedFileName}"/> 
      </h:commandLink> 
     </f:facet> 
    </p:dataTable> 
</cc:implementation> 

使用組件/山島öComponente

<h:form id="tabela-municipio"> 
<ezcomp:tabela-padrao value="#{municipioMB.listaMunicipios}" 
         uniqueId="id-tabela-municipio" 
         var="mun" 
         primaryKey="#{mun.id}" 
         selection="#{municipioMB.municipio}" 
         exportedFileName="municipios"> 
    <p:ajax event="customRowSelectEvent" listener="#{municipioMB.onRowSelect}" update="@(form[id*='frm-municipio']),@(form[id*='tabela-municipio'])" /> 
    <p:ajax event="customRowUnselectEvent" listener="#{municipioMB.onRowUnselect}" update="@(form[id*='frm-municipio']),@(form[id*='tabela-municipio'])" /> 
    <p:column headerText="Pais" width="300" filterBy="#{mun.estado.pais.nome}" filterMatchMode="contains"> 
     <h:outputText value="#{mun.estado.pais.nome}"/> 
    </p:column> 
    <p:column headerText="Estado" width="300" filterBy="#{mun.estado.sigla} - #{mun.estado.nome}" filterMatchMode="contains"> 
     <h:outputText value="#{mun.estado.sigla} - #{mun.estado.nome}"/> 
    </p:column> 
    <p:column headerText="Município" filterBy="#{mun.nome}" filterMatchMode="contains"> 
     <h:outputText value="#{mun.nome}"/> 
    </p:column> 
</ezcomp:tabela-padrao> 

我得到這個例外/ Ocorreu ESTAexceção!

Advertência:StandardWrapperValve [面孔的Servlet]:Servlet.service()進行的servlet面臨的Servlet在javax.faces.component.UIData.setValueExpression(UIData.java:804) 拋出異常 java.lang.IllegalArgumentException異常 at com.sun.faces.facelets.tag.jsf.ComponentRule $ ValueExpressionMetadata.applyMetadata(ComponentRule.java:107) at com.sun.faces.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:81) at javax .faces.view.facelets.MetaTagHandler.setAttributes(MetaTagHandler.java:129) at javax.faces.view.facelets.DelegatingMetaTagHandler.setAttributes(DelegatingMetaTagHandler.java:102) at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.doNewComponentActions(ComponentTagHandlerDelegateImpl.java:491) 在com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:178) 在的javax。 faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) at com.sun.faces.facelets.tag.composite.ImplementationHandler.apply(ImplementationHandler.java:81) at javax.faces.view.facelets。 CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95) at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93) at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler。 java:87) at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:3 12) 在com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:371) 在com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:326) 在融爲一體。 sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyCompositeComponent(CompositeComponentTagHandler.java:387) at com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyNextHandler(CompositeComponentTagHandler.java:188) at com.sun。 faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:202) 在javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) 在javax.faces.view.facelets.DelegatingMetaTagHandler。 applyNextHandler(DelegatingMetaTagHandler.java:137) at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) at javax.faces。com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:202) 。 view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95) 在com.sun.faces.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:106) 在com.sun.faces.facelets.tag。 ui.CompositionHandler.apply(CompositionHandler.java:206) at com.sun.faces.facelets.impl。DefaultFaceletContext $ TemplateManager.apply(DefaultFaceletContext.java:395) at com.sun.faces.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:366) at com.sun.faces.facelets.tag.ui.InsertHandler。申請(InsertHandler.java:111) 在javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95) 在javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) 在com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:202) at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) at javax.faces.view。 facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95) at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93) at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87) at com.sun。 faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:312) at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:371) at com.sun.faces.facelets.impl。 DefaultFacelet.include(DefaultFacelet.java:350) at com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:199) at com.sun.faces.facelets.tag.ui.CompositionHandler.apply( CompositionHandler.java:174) at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93) at com.sun.faces.facelets.compiler.Encoding Handler.apply(EncodingHandler.java:87) at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:161) at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy。 java:1006) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun。 (StandardWrapper.java:生命週期管理器) 1682) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344) at org.apache.cat (org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain。)。的java:256) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) 在org.glassfish.tyrus.servlet.TyrusServletFilter.doFilter(TyrusServletFilter.java:305) 在org.apache。 catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) 在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve。 java:316) at org.apach e.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) at org.apache.catalina.core.StandardPipeline.invoke( StandardPipeline.java:673) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) at org。 apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283) at com.sun.enterprise.v3.services.impl。 ContainerMapper $ HttpHandlerCallable.call(ContainerMapper.java:459) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper。的java:167) 在org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206) 在org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180) 在org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) at org.glassfish.grizzly.filterchain.ExecutorResolver $ 9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain .DefaultFilterChain.executeFilter(DefaultFilterChain.java:283) 在org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200) 在org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132 ) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java :111) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536) at org.glassfish.grizzly .strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) 在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access $ 100(WorkerThreadIOStrategy。 Java的:56) 在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy $ WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) 在org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:591) 在org.glassfish.grizzly.threadpool.AbstractThrea dPool $ Worker.run(AbstractThreadPool.java:571) 在java.lang.Thread.run(Thread.java:745)

英語:什麼是我做錯了什麼?

葡萄牙語:O que estou fazendo de errado?

+0

調試,調試,調試請檢查它在哪裏扔這個,什麼值是什麼,你期望在那裏等......只是發佈這是從你身邊的一點努力方式 – Kukeltje

+0

我已經把每個單一的中斷點託管bean的方法。即使輸入托管bean,異常也會運行。它沒有得到任何託管bean方法。你有任何提示我可以找出錯誤的起源嗎? 「只是發佈這是從你身邊努力的方式」對此感到遺憾。我在這裏發佈問題很新。 –

+0

你也可以在這裏放置斷點:''javax.faces.component.UIData.setValueExpression(UIData.java:804)at ...'或者只是看看那個源碼。這就是@VsevolodGolovanov最可能做到的。 – Kukeltje

回答

0

javax.faces.component.UIData:

public void setValueExpression(String name, ValueExpression binding) { 

    if ("value".equals(name)) { 
     this.model = null; 
    } else if ("var".equals(name) || "rowIndex".equals(name)) { 
     throw new IllegalArgumentException(); 
    } 
    super.setValueExpression(name, binding); 

} 

VAR不能是ValueExpression。我建議只在組件中硬編碼一些靜態var值。在定義列時,組件的用戶只需要引用這個硬編碼值。如果你想嵌套你的組件,這將是一個問題。

相關問題