Primefaces graphicsImage仅在第一次加载时显示图像[重复]
Posted
技术标签:
【中文标题】Primefaces graphicsImage仅在第一次加载时显示图像[重复]【英文标题】:Primefaces graphicImage only show the image the first time it loads [duplicate] 【发布时间】:2021-10-21 22:40:54 【问题描述】:环境:
Primefaces 10 JSF 2.3我正在尝试在模板 jsf 页面上加载个人资料图像,第一次加载工作正常,图像出现,但是当我移动到另一个页面时图像消失。 创建会话时,图像会加载到会话范围的 bean 上。 我也尝试使用字节数组上传,但结果相同。
知道问题出在哪里吗?
index.xhtml
<p:graphicImage id="img" value="#sessionBean.imgProfile"/>
SessionBean.java
@Named
@SessionScoped
public class SessionBean implements Serializable
...
private StreamedContent imgProfile;
//-------------------------------------------------------------------------
// Methods
//-------------------------------------------------------------------------
@PostConstruct
public void init()
...
Document d = getUsuari().getDocImatge();
imgProfile = DefaultStreamedContent.builder()
.stream(d::getInputStream)
.contentType(d.getTipus())
.name(d.getFileName())
.build();
...
public StreamedContent getImgProfile()
return imgProfile;
...
【问题讨论】:
好像你的 bean 不是真正的会话范围,也许导入有问题。你能检查它是否正确吗?我看不到您的导入,但这是一个可能的问题。 【参考方案1】:您当前需要每次在您的 getter 中创建一个新的 DefaultStreamedContent。 我们将为 11.0 修复此问题:https://github.com/primefaces/primefaces/issues/7730
【讨论】:
以上是关于Primefaces graphicsImage仅在第一次加载时显示图像[重复]的主要内容,如果未能解决你的问题,请参考以下文章