我的数据库有一个名为“ avatar”的BLOB字段,我在其中存储用户的照片。在我的JPA实体中,此字段表示为byte []。我只想在数组长度为正时呈现“头像”元素,但是我从javax.servlet.FilterChain.doFilter()获得下一个异常:
“异常:未找到方法长度”
这是代码:
<o:graphicImage id="avatar"
value="#{loginView.user.avatar}"
dataURI="true"
rendered="#{loginView.user.avatar.length()>0}"
/>
如果我检查后备bean的长度,并向EL返回一个布尔值,它可以工作并渲染图像,但是我需要保持后备代码不变,这就是为什么我需要从xhtml中进行检查。 谢谢。
编辑:rendered =“#{not not empty loginView.user.avatar}”不起作用,这就是为什么我不得不移至另一个选项的原因。
答案 0 :(得分:1)
尝试使用JSTL。 Taglib名称空间:
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
用法:
<o:graphicImage id="avatar"
value="#{loginView.user.avatar}"
dataURI="true"
rendered="#{fn:length(loginView.user.avatar) > 0}"/>
答案 1 :(得分:0)
长度不是方法,而是数组的属性。尝试在loginView bean中创建一个将返回类似内容的方法。
public boolean isAvatarLoaded() {
return this.user.avatar.length > 0;
}
<o:graphicImage id="avatar"
value="#{loginView.user.avatar}"
dataURI="true"
rendered="#{loginView.isAvatarLoaded()}"
/>