2016-12-05 5 views
1

イメージはデータベースからbyte[]としてロードされています。 誰もそれをStreamedContentオブジェクトに変換し、<p:graphicImage value="#{bean.image}"/>で使用するBeanの例がありますか?バイト配列をp:graphicImagesにロードする

ありがとうございました。

答えて

1
@Named 
public class ImageBean { 
    private StreamedContent image; 
    @PostConstruct 
    public void init() { 
     image = new DefaultStreamedContent(new ByteArrayInputStream(byteArray)); // your byte array 
    } 
    // setter and getter for image omitted 
} 

次にあなたがp:graphicImage要素のすべての

+0

ありがとう:

<p:graphicImage value="#{bean.image}" /> 

を使用するには、あなたの豆は、このような何かを見ているだろう。私は前にこれをやったと感じましたが、明らかにそうではありませんでした。 – Eduardo

0

最初にあなたのXHTMLページに#{imageBean.image}を呼び出し、あなたはStreamedContentを提供するための豆がどのように見えるべきかについて例えばthis great answerをお読みください。

特別な起源については、さらにシリアライズ可能なByteArrayContentが存在します。明確かつ客観的な方法で答えるため

@Named 
@ApplicationScoped 
public class Bean { 

    private byte[] imageLoadedFromDatabase; 

    // code to set (or load) image from database 
    ... 

    public StreamedContent getImage() { 
    if (FacesContext.getCurrentInstance().getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) { 
     return new DefaultStreamedContent(); 
    } else { 
     return new ByteArrayContent(imageLoadedFromDatabase); 
    } 
    } 
} 
+0

お返事ありがとうございます。私はあなたが以前に示唆した答えを読んで、残念ながらそれは私のためには機能しませんでした(実際には全ビットが働いていましたが、後に別の問題があります。 – Eduardo

関連する問題