首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免使用<o:graphicImage>呈现空字节数组

避免使用<o:graphicImage>呈现空字节数组
EN

Stack Overflow用户
提问于 2015-05-26 18:32:23
回答 1查看 431关注 0票数 1

如果没有图像,我有两个<o:graphicImage>来显示存储的图像和一个虚拟图像。实际上,存储的图像的大小可以是零。如果是这样,则呈现第一个<o:graphicImage,但图像为空且未正确呈现。

代码语言:javascript
复制
<o:graphicImage id="image" alt="Image"
        lastModified="#{userProfile.user.lastModified}"
        rendered="#{not empty images.getImage(userProfile.user.id)}"
        value="#{images.getImage(userProfile.user.id)}"

<o:graphicImage name="images/profile.png" width="125"
        rendered="#{empty images.getImage(userProfile.user.id)}" />

如果用户图像为空或长度/大小为0,如何显示虚拟图像?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-26 18:39:18

最好不要在rendered属性中调用该图像流方法。它在JSF生命周期中被多次调用,因此每次都无法有效地从DB获取图像字节。

这个模型一开始看起来也不太对。我建议你换个型号。将图像ID设为UserUserProfile表和实体的FK。

代码语言:javascript
复制
@Column(name="image_id")
private Long imageId;

然后,当用户上传/设置图像时,将图像ID保存在那里。这样您就可以使用它,如下所示:

代码语言:javascript
复制
<o:graphicImage 
    value="#{images.getImage(userProfile.user.imageId)}" 
    rendered="#{not empty userProfile.user.imageId}" />

<h:graphicImage
    name="images/profile.png" 
    rendered="#{empty userProfile.user.imageId}" />

不要忘记修改映像流,通过自己的ID而不是用户ID来获取图像。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30466243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档