ページ:
<p:graphicImage value="#{testController.QR}" />
testController Bean:
private StreamedContent QR;
private ByteArrayOutputStream rawQR;
public StreamedContent getQR() {
if (rawQR != null) {
rawQR = QRCode.from("test").to(ImageType.PNG).stream();
ByteArrayInputStream is = new ByteArrayInputStream(rawQR.toByteArray());
QR = new DefaultStreamedContent(is, "image/png");
return QR;
} else {
return null;
}
}
ページにQR画像を表示しようとしています。
上記のコードは SessionScoped では機能しますが、ViewScoped では壊れた画像アイコンが表示されます。Bean を ViewScoped にする必要があります。ここで何が欠けていますか?
QR リファレンス: http://viralpatel.net/blogs/create-qr-codes-java-servlet-qr-code-java/