JSF has the ability to easily create components using the composite:implementation interface. However, inside the components made this way, using primefaces components has proven to be problematic. For example, if you want to update some text using a primefaces "update" tag, it doesn't work. For example, if you have the following code:
Code: Select all
<h:panelGrid columns="2">
<h:outputText value="Rate This Project" />
<p:rating rateListener="#{ratingController.handleRate}" update="display"/>
</h:panelGrid>
<h:outputText id="display" value="#{ratingController.message}" />
Then you always get an error message like: "org.primefaces.application.PrimeFacesPhaseListener|_ThreadID=26;_ThreadName=Thread-1;|Component "display" not found to be updated partially." This always happens inside composite:implementations, across many components (p:rating, p:tree, etc.).