【发布时间】:2017-09-26 17:11:07
【问题描述】:
我想使用ui:fragment 中的rendered 属性在我的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 确实 not 将 rendered 列为有效属性。
无论如何,我尝试使用rendered,它确实有效。但是,我的 IDE - IntelliJ - 正确地将 rendered 属性突出显示为错误,并告诉我在 ui:fragment 元素中不允许这样做。
我在 ui:fragment rendered attribute not working after upgrading Facelets to JSF 2 中看到了一个文档错误,其中 rendered falsly 没有在 JSF 2.0 文档中列出,但该响应没有说明 JSF 2.2 或 MyFaces 2.2(可能是因为它的日期早于JSF 2.2 的发布)。
MyFaces 文档中缺少的rendered 属性也只是一个错误吗?
由于ui:fragment 元素在单个Facelets 文件中多次出现,这些“错误”错误使得查找真正错误变得非常麻烦。如果确实只是文档中的一个错误,那么针对此问题的推荐解决方案是什么?
【问题讨论】:
-
自从我开始使用 JSF 2(现在是 5 年前)以来,我一直面临这种情况。该属性绝对有效,但 IDE 不考虑它(Intellij 或 Eclipse 也不考虑)。似乎是由 IDE 解析器移植到 2.1 和 2.2 的文档错误。该属性肯定存在于 2.1 文档中:stackoverflow.com/questions/3713468/… MyFaces 中不知道。
-
@XtremeBiker 感谢您的评论。好的,那我就继续使用
rendered属性。我有点担心这个文档错误在 Mojarra 文档中得到了修复(从 2.1 版开始?),但在 MyFaces 2.2 文档中没有。 -
2013 年 3 月的 JSF 2.2 规范中的勘误表中有一行关于此问题。链接是 download.oracle.com/otndocs/jcp/jsf-2_2-fr-eval-spec/index.html,它位于 pdf 文档 (C114) 的第 406 页中:
Add "rendered" attribute to VDL docs for ui:component and ui:fragment..所以 MyFaces 似乎也没有正确更新这部分。