PF 的图形图像不渲染



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

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

我在渲染图像时遇到问题。我已经遵循了解释的代码,我正确地检索了图像的id,以在一个单独的方法中显示:

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");
        }
.......

我无法检索到(始终为null),所以我尝试使用属性,它有效。因此,加载了DefaultStreamContent,因为图像根本不渲染。我的xhtml代码:

<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>

与上面这个主题中的代码完全相同。PS:我把mt dataTable封装在一个选项卡中。可能是对封装组件或表单的依赖,或者什么?

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

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

根据我在构建动态图像方面发现的另一个页面,应该使用<f:param .../>getStreamedImage()方法而不是<f:attribute .../>提供参数。您正在使用ConversationScoped后台bean吗?我在显示动态图像时也遇到了同样的问题,但发现将它们与ConversationScoped bean一起使用时出现了问题。我将我的backingbean切换到Session范围,现在它工作得很好。

相关内容

  • 没有找到相关文章

最新更新