“ui:fragment”中的“rendered”属性

时间:2017-04-28 14:29:24

标签: jsf jsf-2 myfaces

我想使用rendered中的ui:fragment属性在我的JSF 2.2 facelet中有条件地呈现span元素。 JSF 2.2 documentation of ui:fragment列出rendered作为允许的属性。我使用MyFaces 2.2.12作为JSF实现,而MyFaces 2.2 documentation of ui:fragment列出rendered作为有效属性。

无论如何我尝试使用rendered,但它确实有效。但是,我的IDE - IntelliJ - 正确地将rendered属性突出显示为错误,并告诉我ui:fragment元素中不允许这样做。

我在ui:fragment rendered attribute not working after upgrading Facelets to JSF 2中看到有一个文档错误,其中rendered错误地没有在JSF 2.0文档中列出,但响应没有说明JSF 2.2或MyFaces 2.2(可能是因为它发布在JSF 2.2发布之前。

MyFaces文档中缺少的rendered属性是否只是一个错误?

在单个Facelets文件中出现多个ui:fragment元素,这些“错误”错误使得查找真正的错误非常麻烦。对于这个问题,建议的解决方案是什么,如果它只是文档中的一个错误?

1 个答案:

答案 0 :(得分:0)

renderedui:fragment中的有效属性和JSF 2.0,2.1,2.2中的ui:component。请参阅JSF 2.2 View Declaration Language

某些IDE在自动完成(内容助手)模式下不建议使用此属性,并将其验证为"未知属性"。发生这种情况是因为JSF 2.0中的标记文件声明中缺少rendered属性(即使属性在UIComponent中显示),并且IDE验证基于标记文件声明。问题已在JSF 2.1中修复:缺少的属性已添加到标记文件声明中。 IDE中的验证并不总是反映这种变化。