首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PF的graphicImage不呈现

PF的graphicImage不呈现
EN

Stack Overflow用户
提问于 2011-06-26 20:53:50
回答 1查看 2.1K关注 0票数 1

我正在使用JSF/PF,但是我不能让graphicImage工作。回顾论坛上发表的大量话题,这个PF的graphicImage似乎很棘手。我显然在做一些错误的事情,但是,只要我在复制为其他人工作的代码(参见帖子),它一定是组件环境中的一些东西。我希望在这里找到一个解决方案,我被困了好几个星期。谢谢

这是我在PF论坛上的原始问题:

我在渲染图像时遇到了问题。我遵循了所解释的代码,并且正确地检索了要在单独的方法中显示的图像的id:

代码语言:javascript
复制
public StreamedContent getStreamedImage() {

        StreamedContent streamedImage = null;
                UIViewRoot uiRoot = FacesContext.getCurrentInstance().getViewRoot();

        System.out.println(uiRoot.getClientId());

        UIComponent component = FacesContext.getCurrentInstance().getViewRoot().findComponent("itemDataForm:imagesTbl:itemImgComp");
        Map attributes = component.getAttributes();
        Integer image_id = (Integer)attributes.get("item_img_id");

        if(image_id != null && editionItem != null && editionItem.getImages() != null){
            for(ItemImageView img : editionItem.getImages()){
                if(image_id.intValue() == img.getId()){
                    streamedImage = new DefaultStreamedContent(new ByteArrayInputStream(img.getImage()), "image/jpeg");
                }
            }
        }else{
            streamedImage = new DefaultStreamedContent(new ByteArrayInputStream(editionItem.getImages().get(0).getImage()), "image/jpeg");
        }
.......

我无法检索到(总是为空),所以我尝试了一下属性,它起作用了。所以,DefaultStreamContent被加载了,图像根本不会渲染。我的xhtml代码如下:

代码语言:javascript
复制
<p:dataTable id="imagesTbl" var="itemImg" value="#{itemEditionBean.editionItem.images}">
                                        <p:column>
                                            <h:panelGrid columns="1">
                                                <h:outputText value="#{itemImg.id}"/>
                                                <p:graphicImage id="itemImgComp" value="#{itemEditionBean.streamedImage}">
                                                    <f:attribute name="item_img_id" value="#{itemImg.id}"/>
                                                </p:graphicImage>
                                            </h:panelGrid>
                                        </p:column>
                                    </p:dataTable>

与上述主题中的代码完全相同。附言:我有一个标签内的mt dataTable。可能依赖于封闭的组件,或者窗体,或者其他什么?

可以在下面的链接中查看来自其他相关主题的大量代码:

http://forum.primefaces.org/viewtopic.php?f=3&t=4163&p=39751

EN

回答 1

Stack Overflow用户

发布于 2011-11-10 00:13:26

根据我在building dynamic images上找到的另一个页面,应该使用<f:param .../>而不是<f:attribute .../>来为getStreamedImage()方法提供参数。您是否在使用ConversationScoped支持bean?我有相同的problem displaying dynamic images,但发现有一个problem using them with ConversationScoped beans。我将我的支持bean切换到会话作用域,现在它工作得很好。

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

https://stackoverflow.com/questions/6484042

复制
相关文章

相似问题

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