Primefaces: graphicImage не отображается при вызове страницы из URL (не <h: commandLink) - PullRequest
0 голосов
/ 23 ноября 2010

У меня возникли проблемы с отображением графического изображения простых лиц для отображения в определенном сценарии, когда я пытаюсь отобразить изображение на странице лицевой стороны (полученной из базы данных), и страница вызывается по URL-адресу (неч: commandLink).Это работает на других страницах с запросами, обработанными через h: commandButton.Однако все данные, кроме изображения, отображаются для следующего сценария ...

  1. fundraiseView.xml (страница лицевой стороны) html ... p: graphicImage value = "# {fundraisePage.picture}"/ ... / html

  2. FundraisePage (запросить боб области поддержки с параметром запроса)

    @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"));
      }
    
  3. Когда я вызываю страницу через http: //...../faces/fundraiseView.xml? Id = 1 страница вернется с отображением всех данных для идентификатора 1, но без отображения изображения.Я уверен, что это связано с тем, как я вызываю страницу (поскольку у меня она работает где-то еще), однако мне нужно, чтобы это был запрос, инициированный вне тега JSF.

Любое понимание или предложения очень ценятся.

Спасибо, Джонатан

1 Ответ

1 голос
/ 24 ноября 2010

Нашел ответ в другой теме.

Загрузка набора изображений с простыми лицами

Мне нужно было использовать тег f: parm name = "id" value = "# {fundraisePage.id}" в теге p: graphicImage, чтобы он принимал id в качестве параметра поиска. Также измените значение тега изображения на этот метод в свойстве ...

public StreamedContent getImage () {

     FundRaise fundRaiseEO = new FundRaise();
     fundRaiseEO = dataSB.getFundRaiseIndividual(id);
     return new DefaultStreamedContent(new ByteArrayInputStream(fundRaiseEO.getPicture()), "image/jpeg"); \\ or whatever your image mime type.

}

...