【发布时间】:2014-09-04 12:48:05
【问题描述】:
我的 xhtml 中有一个图形图像,我在某些情况下正在加载:
这是组件:
<h:graphicImage id="imgHlpProfileClass"
styleClass="helpIcon"
url="/images/icons/dashboard_help_16.png"
alt="Help Text"/>
在这种情况下,将显示 alt 中的文本。
但是当我在组件中应用渲染条件时,不会显示 alt 属性。
例子:
<h:graphicImage id="imgHlpProfileClass"
styleClass="helpIcon"
url="/images/icons/dashboard_help_16.png"
alt="Help Text"
rendered="#{not empty targetSource.object.type}"/>
编辑:
我做了这样的改变。渲染属性对输出文本和 GraphicalImage 都正确工作。但在图形图像的情况下,alt 不起作用。这里有什么问题?
<h:panelGroup id = "overrideProvisioningActionTextPanel">
<h:outputText value="Override Default Provisioning"
rendered="#{not empty targetSource.object.type}"/>
<h:graphicImage id="imgHlpAppCase"
styleClass="helpIcon"
url="/images/icons/dashboard_help_16.png"
alt="Help Text"
rendered="#{not empty targetSource.object.type}"/>
</h:panelGroup>
【问题讨论】:
-
“rendered”属性中的表达式将被评估为真或假,无论它是否有效。您必须检查您的表达式是否正确或有意义(例如,尝试将另一个组件添加到打印其值的同一页面)
-
是的,同样的表达式也适用于其他组件并且效果很好。
-
是您尝试更新此组件时出现的问题吗?如果页面加载时没有渲染,那么组件不存在并且“更新”子句将被忽略,您必须将图像包装在另一个“可重新渲染”组件中
-
alt什么时候没有显示?当rendered是false时,你的意思是? -
我已对问题进行了更改。如果我删除渲染条件,则会显示替代文本。为什么会这样?