我试图解决这个问题好几天但它不起作用......我有这个代码
<div id="banner-principal">
<div id="largura_paginacao"><div id="paginacao"></div></div>
<div class="cycle">
<ui:repeat value="#{servicosController.fazBuscaServicosHome()}" var="servico">
<div class="banner">
<p:commandLink actionListener="#{servicosController.abreAnuncio(servico.codServico)}">
<p:graphicImage value="#{servicoImagemController.imagem}" url="teste"/>
<img src="../imgs/exemplo-banner.jpg" />
<div class="descricao-banner">
<div class="valor">
<h:outputText value="#{servico.valor}">
<f:convertNumber minFractionDigits="2" currencySymbol="R$" type="currency"/>
</h:outputText>
</div>
<div class="titulo">#{servico.titulo}</div>
<div class="infos">Anunciante: #{servico.descricaoAnunciante}</div>
</div>
</p:commandLink>
</div>
</ui:repeat>
</div>
</div>
这是我的托管bean:
@ManagedBean
@ApplicationScoped
public class ServicoImagemController {
private StreamedContent imagem;
@PostConstruct
public StreamedContent getImagemPrincipal(int codServico){
System.out.println("here camila");
FacesContext context = FacesContext.getCurrentInstance();
if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) {
// So, we're rendering the view. Return a stub StreamedContent so that it will generate right URL.
return new DefaultStreamedContent();
}
else {
InputStream imagem = buscaImagensServico(codServico).get(0).getImagem();
return new DefaultStreamedContent(imagem);
}
}
public List<ServicosImagemModel> buscaImagensServico(int codServico){
List<ServicosImagemModel> imagens = null;
try {
String meusParametros = FacesContext.getCurrentInstance().getExternalContext().getInitParameter("ArquivoDeParametros");
Parametros.getInstance().carregaParametros(meusParametros);
Localizador<ServicosImagemModel> l = new Localizador<ServicosImagemModel>(ServicosImagemModel.class);
Integer parametros[] = {codServico};
imagens = l.localiza("codServico = ?", parametros);
} catch (FevasDBException ex) {
Logger.getLogger(ServicoImagemController.class.getName()).log(Level.SEVERE, null, ex);
}
return imagens;
}
/**
* @return the imagem
*/
public StreamedContent getImagem() {
imagem = getImagemPrincipal(28);
return imagem;
}
/**
* @param imagem the imagem to set
*/
public void setImagem(StreamedContent imagem) {
this.imagem = imagem;
}
}
发生的事情显然是没有调用 void getImagem() .. 但我不知道为什么,因为我的托管 bean 似乎还可以..
如果有人可以帮助我,我将不胜感激!
谢谢!