是否真的应该对使用render ="false"的元素进行EL解析?这导致我很多空指针异常和类似的问题.看下面的例子:
<p:tab title="#{userCompetenceController.getTreeName(3)}" rendered="#{!empty userCompetenceController.getTreeName(3)}">
<xdin:competenceTable id="competenceBox3"
profile="#{userCompetenceController.selectedProfile}"
tree="#{userCompetenceController.getCompetenceTree(3)}"
maxHeight="500px"/>
</p:tab>
Run Code Online (Sandbox Code Playgroud)
主要问题(除了性能)是xdin:competenceTable不支持null tree-attribute.getTreeName(int index)在这种情况下返回null,然后调用getCompetenceTree(3)返回null,即使它的parent(p:tab)有rendered="false"
简而言之:xdin:competenceTable即使它是父级的,也会被EL解析rendered="false".为什么?
看一下下面的 JSF 生命周期。
渲染只是最后一个阶段,并且rendered="false"只影响最后一个阶段,而构造组件的错误发生在第一个阶段。
事实上,非渲染组件在所有阶段都不应该执行任何操作,但看起来您的组件似乎不符合规范的该部分。

| 归档时间: |
|
| 查看次数: |
5572 次 |
| 最近记录: |