Jsf 2 Primefaces:graphicImage从URL调用页面时不显示(非<;h:commandLink)

Jsf 2 Primefaces:graphicImage从URL调用页面时不显示(非<;h:commandLink),jsf-2,primefaces,Jsf 2,Primefaces,我在让primefaces动态图形图像在特定场景中显示时遇到了一些问题,在特定场景中,我试图在facelet页面(从数据库检索)上显示图像,而该页面由URL(而不是h:commandLink)调用。它在通过h:commandButton处理请求的其他页面上工作。但是,对于以下场景,除了图像之外的所有数据都会显示 fundraiseView.xml(facelet页面) html ... p:graphicImage value=“#{fundraisePage.picture}”/ ... /h

我在让primefaces动态图形图像在特定场景中显示时遇到了一些问题,在特定场景中,我试图在facelet页面(从数据库检索)上显示图像,而该页面由URL(而不是h:commandLink)调用。它在通过h:commandButton处理请求的其他页面上工作。但是,对于以下场景,除了图像之外的所有数据都会显示

  • fundraiseView.xml(facelet页面) html ... p:graphicImage value=“#{fundraisePage.picture}”/ ... /html

  • FundraisePage(具有请求参数的请求范围支持bean)

  • 当我通过调用页面时,页面返回显示id 1的所有数据,但不显示图片。我确信这与我调用页面的方式有关(因为我让它在其他地方工作),但是我需要它是在JSF包装的标记之外启动的请求

  • 非常感谢您的任何见解或建议

    谢谢,
    约翰纳森在另一条线索中找到了答案

    我需要在p:graphicImage标记中使用标记f:parm name=“id”value=“#{fundraisePage.id}”,以便它接受id作为查找参数。还可以在属性中将图像标记上的值更改为此方法

    公共流内容getImage(){

    }

    @ManagedBean
    @RequestScoped
    public class FundraisePage extends BackingBean {
    
    
      @EJB DataSBLocal dataSB;
      StreamedContent picture;
    
    
      @ManagedProperty(value="#{param.id}")
      private int id;
    
    
      @PostConstruct
      public void init() {
        this.fundRaiseEO = dataSB.getFundRaiseIndividual(id);
        InputStream inputStream = new ByteArrayInputStream(this.fundRaiseEO.getPicture());
        this.setPicture(new DefaultStreamedContent(inputStream, "image/jpeg"));
      }
    
         FundRaise fundRaiseEO = new FundRaise();
         fundRaiseEO = dataSB.getFundRaiseIndividual(id);
         return new DefaultStreamedContent(new ByteArrayInputStream(fundRaiseEO.getPicture()), "image/jpeg"); \\ or whatever your image mime type.