Мы используем композитные компоненты внутри других компонентов в нашем проекте. Все отлично работает на JBoss 7.1.0 , но на JBoss 7.1.1 мы получаем следующие ошибки:
No handlers found for exception javax.faces.view.facelets.TagException:
/resources/components/my/bigComponent.xhtml @21,47 <my:nestedComponent>
Tag Library supports namespace: http://java.sun.com/jsf/composite/components/my,
but no tag was defined for name: nestedComponent
Мы попробовали решение, предложенное в этой теме сообщества JBoss , но оно ничего не изменило в нашей проблеме (швы, мы не единственные в этом случае , и решение может не работает, потому что мы также находимся в теге ui:define
из файла шаблона).
Вот наши два компонента:
Вложенность:
<!DOCTYPE html PUBLIC ...>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:cc="http://java.sun.com/jsf/composite"
xmlns:my="http://java.sun.com/jsf/composite/components/my" >
<cc:interface componentType="...">
<h:panelGroup>
<cc:attribute name="someAttribute" />
</h:panelGroup>
</cc:interface>
<cc:implementation>
<my:nestedComponent content="a text" />
</cc:implementation>
</html>
Вложенные:
<!DOCTYPE html PUBLIC ...>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:cc="http://java.sun.com/jsf/composite">
<cc:interface>
<cc:attribute name="content" />
</cc:interface>
<cc:implementation>
<h:outputText value="#{cc.attrs.content}" />
</cc:implementation>
</html>
Это регрессия? Мы делаем что-то не так? В 1-й ссылке предлагаемое решение подразумевает в компоненте вложенности что-то вроде этого:
<composite:interface>
<composite:facet name="greet1"/>
<composite:facet name="greet2"/>
</composite:interface>
<composite:implementation>
<lib:greet1 name="Stan" />
<lib:greet2 name="Silvert" />
</composite:implementation>
Что это за composite:facet
без composite:renderFacet
для?