我在另一个复合组件中有一个复合组件。 内部组件的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
代替或者在简单的组合组件中使用内部复合组件时,一切正常。
谁知道这里有什么问题?