【问题标题】:Primefaces graphicImage only show the image the first time it loads [duplicate]Primefaces graphicsImage仅在第一次加载时显示图像[重复]
【发布时间】: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 不是真正的会话范围,也许导入有问题。你能检查它是否正确吗?我看不到您的导入,但这是一个可能的问题。

标签: image primefaces jsf-2 rendering


【解决方案1】:

您当前需要每次在您的 getter 中创建一个新的 DefaultStreamedContent。 我们将为 11.0 修复此问题:https://github.com/primefaces/primefaces/issues/7730

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多