2011-11-08 25 views
1

我有一个复合组件,它将特定对象类型作为其属性。它看起来像这样:复合组件参数不会评估它是否为ui:重复var属性

<cc:interface> 
    <cc:attribute name="value" 
        type="com.myapp.Tally" 
        required="true" 
</cc:interface> 

该组件仅产生H:panelGrid的与来自对象的数据元素。

我从未有过麻烦,直到我试图用它界面内:重复结构是这样的:

<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:重复循环没有任何问题。它们按预期运行。这是一个莫哈拉错误还是在JSF规范中有一些我不明白的东西?

这是钻嘴鱼科2.1.0(FCS 2.1.0-B11)GlassFish中3.1.1

+0

从来没有与Mojarra 2.1.0一起尝试过,但它在Mojarra 2.1.3上对本地工作正常,并且在使用Mojarra 2.1.1(http://www.m4n.nl)的生产环境中工作良好前10名单是由ui:repeat生成的,并且弹出的明星分数是一个复合词)。你确定你没有输入'value'属性吗? – BalusC

+0

这是从我的应用程序中剪切并粘贴(然后几次删除)。该属性在Netbeans编辑器中自动完成。不过有趣的是Mojarra 2.1.3我以为我有最新的。让我看看我是否可以升级并再试一次。 – AlanObject

+0

@BalusC事实证明,我的家庭系统上有2.1.3。我的笔记本电脑已过时。它现在似乎正在工作。不幸的是,我没有保存失败的代码,但我会看看是否可以让我的笔记本电脑再次失败。 – AlanObject

回答

2

这与将其固定在钻嘴鱼科2.1.1中的错误。考虑upgrading。我相信这是(直接)访问提示修复的结果,如this overview中提到的在Mojarra 2.1.1中修复的问题。