У меня есть составной компонент, который принимает определенный тип объекта в качестве атрибута value .Это выглядит так:
<cc:interface>
<cc:attribute name="value"
type="com.myapp.Tally"
required="true"
</cc:interface>
Компонент просто создает h: panelGrid с элементами данных из объекта.
У меня никогда не было проблем с этим, пока япопытался использовать его внутри структуры ui: repeat , например:
<ui:repeat value="#{myApp.tallyList}" var="tally">
<p>
<qc:tallySummaryH value="#{tally}" />
</p>
</ui:repeat>
Когда запрашивается эта страница, выдается исключение:
javax.faces.view.facelets.TagException: /table.xhtml @86,66 <qc:tallySummaryH> The following attribute(s) are required, but no values have been supplied for them: value.
at com.sun.faces.facelets.tag.composite.InterfaceHandler.validateComponent(InterfaceHandler.java:233)
at com.sun.faces.facelets.tag.composite.InterfaceHandler.apply(InterfaceHandler.java:125)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:86)
at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:152)
at com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyCompositeComponent(CompositeComponentTagHandler.java:349)
Другие ссылки на # {tally} внутри цикла ui: repeat не имеют никаких проблем.Они работают как положено.Это ошибка Mojarra или в спецификации JSF есть что-то, чего я не понял?
Это на Mojarra 2.1.0 (FCS 2.1.0-b11) в GlassFish 3.1.1