无法从复合组件调用PrimeFaces commandButton的actionListener

时间:2014-03-31 16:18:15

标签: java-ee jsf-2 primefaces

我在另一个复合组件中有一个复合组件。 内部组件的p:commandButton绑定到actionListener,它看起来像是:

    <?xml version="1.0" encoding="UTF-8"?>

    <!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:f="http://java.sun.com/jsf/core"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:c="http://java.sun.com/jsp/jstl/core"
          xmlns:cc="http://java.sun.com/jsf/composite"
          xmlns:uv="http://java.sun.com/jsf/composite/components/views/core">
    <cc:interface>
        <cc:attribute name="organizationController" type="core.components.OrganizationController" required="true"/>
    </cc:interface>
    <cc:implementation>
        <uv:organizationDataSearch id="srcOrganization343423"
                                   controller="#{cc.attrs.organizationController}"
                                   title="testOutter"/>
    </cc:implementation>
    </html>

我的uv:organizationDataSearch的代码是

        <cc:interface>
    ...
        <cc:attribute name="controller" type="core.components.OrganizationController" required="true"/>
    ...
        </cc:interface>
         <cc:implementation>

        ...
                <p:outputPanel id="searchPanel" ...>
                    <p:outputPanel id="searchPanel" styleClass="searchPanel">
        <!--search fields with using of h:inputText -->

                        <p:commandButton id="searchButton"
                                         value="Search"
                                         actionListener="#{cc.attrs.controller.search(true)}"
                                         process="searchPanel, @this"
                                         update="searchResultPanel"
                                         styleClass="searchButton" />
                    </p:outputPanel>
..        
    <p:outputPanel id="searchResultPanel" layout="block" styleClass="searchResultPanel">
    <p:dataTable id="searchResultTable" .../>
    </p:outputPanel>
...
         </cc:implementation>

其中cc.attrs.controller.search(true)core.components.OrganizationController中具有以下签名的方法

public void search(Boolean isInnSearch) {...}
我使用的 PrimeFaces 具有 3.0th 版本。 JSF 实施是第2.0次 mojarra

问题出在actionListener (cc.attrs.controller.search(true)),当我尝试搜索数据时,不会调用此问题。有趣的时刻是,当我使用h:commandButton代替或者在简单的组合组件中使用内部复合组件时,一切正常。 谁知道这里有什么问题?

0 个答案:

没有答案