我想使用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
元素,这些“错误”错误使得查找真正的错误非常麻烦。对于这个问题,建议的解决方案是什么,如果它只是文档中的一个错误?
答案 0 :(得分:0)
rendered
是ui: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中的验证并不总是反映这种变化。