【问题标题】:primefaces 4.0 p:graphicImage firefox bugprimefaces 4.0 p:graphicImage Firefox 错误
【发布时间】:2014-02-25 05:07:20
【问题描述】:

这是我使用 primefaces 4.0 通信版本的 firefox 问题:p:graphicImage 我有一个模型列表,每当我单击 1 个项目时,我想分别获得 1 个图像 在 xhtml 文件中

<p:fieldset id="modelDiagramView" style="width:100%;height:1280px">
    <p:panel id="panel">
        <p:graphicImage value="#{modelBean.modelImage}" style="width: 100%;" cache="false"/>
    </p:panel>
</p:fieldset>

在java bean中,只有会话作用域和应用作​​用域运行良好

public StreamedContent getModelImage() {
        FacesContext context = FacesContext.getCurrentInstance();

        if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) {
            System.out.println("render_response: id=" + modelID);
            // So, we're rendering the HTML. Return a stub StreamedContent so
            // that it will generate right URL.
            // modelImage = new DefaultStreamedContent();
            if (modelID != null)
                getModelImage(modelID);
        } else {
            System.out.println("real reander: id=" + modelID);
            if (modelID != null)
                getModelImage(modelID);
        }
        return modelImage;
    }

在 chrome 中,当我单击列表中的项目时,p:graphicImage 将呈现一个新图像,但是在 Firefox 中,只会呈现第一个项目的图像,如果我想显示下一个单击的项目,我必须刷新浏览器(F5)。它是primefaces错误,我该如何防止这个问题?请帮帮我

【问题讨论】:

  • 要使用primefaces在图像中显示,请遵循Balcus stackoverflow.com/questions/10073905/…的这个答案
  • 嗨,你能解决这个问题吗,我也遇到了同样的问题,即使我在图形图像中设置了缓存 = false。这在IE和Firefox中都可以重现
  • 不,不是全部。我必须使用 2 个控制器,一个使用 SessionScope 来显示图像。

标签: firefox primefaces graphicimage


【解决方案1】:

如果不更改 URL,浏览器不会使用 ajax 刷新图像只是一个“错误”。因此,您应该在资源 url 中添加一个随机数,如下例所示。

xhtml

<p:graphicImage value="#{bean.stream}" id="pic" width="200">
   <f:param name="randomNumber" value="#{beanxxx.randomNumber}"/>
</p:graphicImage>

豆xxx

public String getRandomNumber() {
    Random r = new Random();
    int low = 10;
    int high = 100;
    int result = r.nextInt(high-low) + low;

    return Integer.toString(result);
}

【讨论】:

  • 在 p:graphicImage 上设置 cache=false 要容易得多。
猜你喜欢
  • 1970-01-01
  • 2015-06-13
  • 2021-04-15
  • 2014-01-17
  • 2014-04-19
  • 2014-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多