我对h:graphicImage
有一个非常奇怪的错误此代码可以正常工作: -
<h:graphicImage value="/Common/Images/#{item.templatePicName}"/>
这个不是: -
<h:graphicImage alt="${app:getCommonImagePath(item.templatePicName)}" value="${app:getCommonImagePath(item.templatePicName)}" />
它只显示alt值/Common/Images/Sunset.jpg,它非常精细,适用于第一种情况。那么为什么它在第二种情况下不起作用?我的图片没有问题。它们出现在正确的目录中。
这里getCommonImagePath是我的自定义EL函数,其定义是:
package Common;
public final class AppDeployment {
private AppDeployment(){ //hide constructor
}
private static String commonImageFolderPath = "/Common/Images/";
public static String getCommonImagePath(String picName){
return commonImageFolderPath + picName;
}
}
答案 0 :(得分:2)
使用JSF,您应该使用#{..}
而不是${..}
。
然后检查生成的HTML以查看生成的图像的src
指向的内容。
然后检查您的自定义标记是否已正确映射。
答案 1 :(得分:1)
如果你的app类中有一个连接你想要的属性,它就更容易解决。
即:
class App {
private String commonImagePath="/Common/Images/";
//getters and setters
}
然后你会写:
<h:graphicImage alt="#{app.commonImagePath}#{item.templatePicName}" value="#{app.commonImagePath}#{item.templatePicName}" />