【发布时间】:2011-09-12 10:17:19
【问题描述】:
我遇到了一个问题,涉及我的复合组件中 h:outputStylesheet 的“rendered”属性。
<h:outputStylesheet rendered="#{cc.attrs.value == 'somevalue'}" library="css" name="mainDark.css" target="head" />
不起作用,即使 EL 评估为“真”。而
<h:outputText rendered="#{cc.attrs.value == 'somevalue'}" value="rendered = true" style="color: red;" />
正在正确渲染/未渲染。
虽然这已经很令人困惑,但它变得更糟:
- 如果我将 EL 替换为“true”或“false”,该属性将按预期工作。
- 如果我用其他评估替换 EL,它也可以工作。例如 #{someBean.somevalue == 'somevalue'} 或只是 #{1 > 0}
我是否遗漏了什么,或者这可能只是一些奇怪的错误? 我在 Tomcat v7.0 和 JSF2.0 上运行
【问题讨论】:
-
我目前的解决方法:
<h:outputStylesheet library="css" name="#{cc.attrs.enable == 'true' ? 'mainDark.css' : 'empty.css'}" target="head" />但我仍然很感兴趣,为什么会这样。 -
这不是自定义组件。那是一个复合组件。我编辑了标题和标签。还是很有趣的问题。你使用的是什么 JSF impl/version?
-
抱歉 :) 我正在使用 Mojarra JSF Implementation 2.0.3
-
刚试过 Mojarra 2.1.3。还是一样。
标签: jsf jsf-2 composite-component