0

我使用 openfaces 3.0 和 wildfly 8.2.0

我在数据表中的过滤器有问题

当我把过滤器正常工作

在 wildfly 8.1.0 中不会出现此问题

<o:dataTable
    var="row" 
    useAjax="true"
    value="#{docController.docs}"
    styleClass="table table-striped" pageSize="2"> 
    <o:column id="col1"
          sortingExpression="#{row.stringField1}">
        <f:facet name="header">
            <h:outputText id="id2" value="stringField1"/>
        </f:facet>
        <f:facet name="subHeader">
            <o:inputTextFilter expression="#{row.stringField1}"/>
        </f:facet>
        <h:outputText id="outputCol1" value="#{row.stringField1}"/>
    </o:column>
</o:dataTable>

-

  Caused by: java.lang.IllegalStateException: TextSearchFilter should have exactly one child component - the search component. children.size = 0
    at org.openfaces.component.filter.TextSearchFilter.getSearchComponent(TextSearchFilter.java:46) [openfaces-3.0.jar:3.0.0]
    at org.openfaces.renderkit.filter.TextSearchFilterRenderer.decode(TextSearchFilterRenderer.java:66) [openfaces-3.0.jar:3.0.0]
    at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:831) [jboss-jsf-api_2.2_spec-2.2.8.jar:2.2.8]
    at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1226) [jboss-jsf-api_2.2_spec-2.2.8.jar:2.2.8]
    at org.openfaces.component.OUIData.process(OUIData.java:959) [openfaces-3.0.jar:3.0.0]
    at org.openfaces.component.OUIData.processColumnFacets(OUIData.java:853) [openfaces-3.0.jar:3.0.0]
    at org.openfaces.component.OUIData.processDecodes(OUIData.java:766) [openfaces-3.0.jar:3.0.0]
    at org.openfaces.component.table.AbstractTable.processDecodes(AbstractTable.java:966) [openfaces-3.0.jar:3.0.0]
    at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1221) [jboss-jsf-api_2.2_spec-2.2.8.jar:2.2.8]
    at javax.faces.component.UIForm.processDecodes(UIForm.java:225) [jboss-jsf-api_2.2_spec-2.2.8.jar:2.2.8]
    at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1221) [jboss-jsf-api_2.2_spec-2.2.8.jar:2.2.8]
    at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1221) [jboss-jsf-api_2.2_spec-2.2.8.jar:2.2.8]
    at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:929) [jboss-jsf-api_2.2_spec-2.2.8.jar:2.2.8]
    at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) [jsf-impl-2.2.8-jbossorg-1.jar:]
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.2.8-jbossorg-1.jar:]
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) [jsf-impl-2.2.8-jbossorg-1.jar:]
    at org.apache.deltaspike.jsf.impl.listener.request.DeltaSpikeLifecycleWrapper.execute(DeltaSpikeLifecycleWrapper.java:89) [deltaspike-jsf-module-impl-1.0.2.jar:1.0.2]
    at javax.faces.lifecycle.LifecycleWrapper.execute(LifecycleWrapper.java:77) [jboss-jsf-api_2.2_spec-2.2.8.jar:2.2.8]
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) [jboss-jsf-api_2.2_spec-2.2.8.jar:2.2.8]
    ... 47 more
4

1 回答 1

0

它看起来像 Openfaces 的 ajax 错误。尝试从 inputTextFilter 中删除“useAjax”和“expression”:

<o:dataTable  var="row" value="#{docController.docs}"
styleClass="table table-striped" pageSize="2"> 
<o:column id="col1" sortingExpression="#{row.stringField1}">
    <f:facet name="header">
        <h:outputText id="id2" value="stringField1"/>
    </f:facet>
    <f:facet name="subHeader">
        <o:inputTextFilter />
    </f:facet>
    <h:outputText id="outputCol1" value="#{row.stringField1}"/>
</o:column>

于 2015-03-10T16:55:00.717 回答