指定JSF资源名称时,<h:commandbutton image =“...”>未正确呈现</h:commandbutton>

时间:2015-03-19 14:40:11

标签: image jsf resources jsf-2.2 commandbutton

我了解到JSF 2.2有一些特殊的资源机制,可以从我的Web应用程序中的预定义 resources / 文件夹中加载图像。这对于这样的图像效果很好:

<h:graphicImage name="gfx/Logos/Logo.png" alt="Logo" title="Logo" styleClass="logo" />

结果src="..."按预期转换为/context/javax.faces.resource/gfx/Logos/Logo.png.xhtml

我认为同样适用于<h:commandButton image="..." /> - 但事实并非如此。生成的src="..."属性未正确转换。

我该如何解决这个问题?我真的必须使用CSS背景图片吗?

1 个答案:

答案 0 :(得分:4)

根据tag documentation<h:commandButton image>采用(相对)URL,而不是JSF资源名称。

通过#{resource['library:name']}使用EL中的资源映射器。它会将JSF资源标识符转换为具体的URL。

<h:commandButton ... image="#{resource['gfx/Logos/Logo.png']}" />

另见:


对具体问题

无关,该东西会生成一个HTML <input type="image">元素,该元素用作图像地图,可以在点击时捕获鼠标指针坐标。您似乎对可点击的图像更感兴趣。在这种情况下,最好使用<h:commandLink><h:graphicImage>

<h:commandLink ...>
    <h:graphicImage name="gfx/Logos/Logo.png" />
</h:commandLink>

另见: