Hallo zusammen,
für Webinterface auf einem JBoss eines real gespielen Tombolaspiels will ich alle automatisch generieren Karten als Grafiken in einem Primefaces Datagrid ausgeben.
Allerdings stoße ich bei diesem Vorhaben auf diese Exception:
Da man die generierten Bilder sowieso nicht mit der var ausgeben gehe ich über den <faram> wert mit dem ich dann die Bild liste durchgehe.
Das Datagrid:
Die Funktion für die Bilder:
für Webinterface auf einem JBoss eines real gespielen Tombolaspiels will ich alle automatisch generieren Karten als Grafiken in einem Primefaces Datagrid ausgeben.
Allerdings stoße ich bei diesem Vorhaben auf diese Exception:
Code:
[org.primefaces.application.PrimeResourceHandler] (http-localhost-127.0.0.1-8081-1) Error in streaming dynamic resource.
Da man die generierten Bilder sowieso nicht mit der var ausgeben gehe ich über den <faram> wert mit dem ich dann die Bild liste durchgehe.
Das Datagrid:
HTML:
<p:dataGrid value="#{main.game.cards}" var="cad" columns="3"
rows="12" paginator="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,25, 50, 100">
<p:panel header="Nr. #{cad.id}">
<p:graphicImage cache="true" value="#{main.fileContent}">
<f:param name="image_id" value="#{cad.id}"></f:param>
</p:graphicImage>
</p:panel>
</p:dataGrid>
Die Funktion für die Bilder:
Java:
public StreamedContent getFileContent() {
logger.trace("Entered method getFileContent.");
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
String photoId = externalContext.getRequestParameterMap().get("image_id");
System.out.println("image: " + photoId);
if (photoId == null || photoId.equals("")) {
fileContent = defaultFileContent;
logger.info("Id was null or empty. Retrieved default file content.");
} else {
int parsedId = Integer.parseInt(photoId);
logger.info("parseid: " + parsedId);
int id = parsedId;
BufferedImage image = game.getCards().get(id).getImage();
System.out.println("id " + id);
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
ImageIO.write(image, "png", os);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
fileContent = new DefaultStreamedContent(new
ByteArrayInputStream(os.toByteArray()), "image/png");
}
logger.trace("Exited method getFileContent.");
return fileContent;
}
Zuletzt bearbeitet: