首页 > 解决方案 > EL:无法访问属性方法

问题描述

我的数据库中有一个名为“头像”的 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 empty loginView.user.avatar}" 不起作用,这就是为什么我不得不转向另一个选项。

标签: jsfprimefacesomnifaces

解决方案


尝试使用 JSTL。标签库命名空间:

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}"/>

推荐阅读