2016-01-19 3 views
1

Следующие действия используются для работы с p:graphicImage, но не с o:graphicImage.Использование f: param внутри o: graphicImage

Задача: data_id всегда имеет значение null.

XHTML:

<p:dataScroller var="data"... 
    <p:graphicImage value="#{bean.imagel}" > 
     <f:param name="data_id" value="#{data._id}" /> 
    </p:graphicImage> 

Bean:

public InputStream getImage(){ 

    String dataId = FacesContext.getCurrentInstance() 
      .getExternalContext() 
      .getRequestParameterMap() 
      .get("data_id"); 

Я также попытался с o:param с тем же результатом. Что мне не хватает?

ответ

3

<f:param> внутри <p:graphicImage> является PrimeFaces-specific trick, чтобы получить StreamedContent предмет для работы «как ожидалось».

<o:graphicImage> не поддерживает (стандарт <h:graphicImage>). Просто передайте его как аргумент метода EL обычным способом. Он заканчивается более чистым кодом.

<o:graphicImage value="#{bean.getImage(data.id)}" /> 

public InputStream getImage(Long dataId) { 
    // ... 
} 

Смотрите также примеры кода в documentation.

+0

Спасибо, кстати, я думаю, что это должно быть 'value =" # {bean.getImage (data.id)} "' вместо 'bean.image'? – sinclair

+0

Действительно, copypaste ошибка, извините! – BalusC

Смежные вопросы