primefaces 4.0 p:graphicImage firefox错误 [英] primefaces 4.0 p:graphicImage firefox bug

查看:87
本文介绍了primefaces 4.0 p:graphicImage firefox错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Here is my problem with firefox using primefaces 4.0 communication version: p:graphicImage I have a list of model, whenever I click 1 item, I would like to get 1 image respectively In xhtml file

<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中,只有会话作用域和应用程序作用域运行良好

in java bean, only session scope and application scope are running well

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 bug,如何预防该问题?请帮助我

In chrome, when I click to item in list, the p:graphicImage will render a new image, however in firefox, only the first item's image will be render, if I want to display the next clicked item, I have to refresh browser(F5). Is it primefaces bug, how can I prevent that problem? Please help me

推荐答案

这只是一个"bug",如果URL不会更改,浏览器不会使用ajax刷新图像.因此,您应该在资源网址中添加一个随机数,如下例所示.

It's just a "bug" that browsers doesn't refresh a image with ajax if the URL will not be changed. Therefore you should add a random number to the resource url as below example.

xhtml

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

beanxxx

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

    return Integer.toString(result);
}

这篇关于primefaces 4.0 p:graphicImage firefox错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆