Jsf 动态图形图像
我正在尝试从数据库中获取动态图形图像。 我在SO中发现了一些相应的问题,但不知怎么的,它不起作用 第页:Jsf 动态图形图像,jsf,jsf-2,primefaces,jsf-2.2,Jsf,Jsf 2,Primefaces,Jsf 2.2,我正在尝试从数据库中获取动态图形图像。 我在SO中发现了一些相应的问题,但不知怎么的,它不起作用 第页: <p:dataList styleClass="routeDatalist" value="#{searchRoutesBean.foundRoutes}" var="uiRoute"> <p:outputLabel value="USERID #{uiRoute.owner.id}"/> <h:graphicImage value="#{pho
<p:dataList styleClass="routeDatalist" value="#{searchRoutesBean.foundRoutes}" var="uiRoute">
<p:outputLabel value="USERID #{uiRoute.owner.id}"/>
<h:graphicImage value="#{photoStreamer.streamedContent}" styleClass="userProfileImage">
<f:param name="userId" value="#{uiRoute.owner.id}" />
</h:graphicImage>
<p:/dataList>
我不知道为什么,但是给定的参数userId总是空的
有人知道可能是什么问题吗?
BR怎么样
<p:dataList styleClass="routeDatalist" value="#{searchRoutesBean.foundRoutes}" var="uiRoute">
<p:outputLabel value="USERID #{uiRoute.owner.id}"/>
<h:graphicImage value="#{photoStreamer.streamedContent(uiRoute.owner.id)}" styleClass="userProfileImage"/>
<p:/dataList>
问题是数据列表需要包装成h:form。 谢谢Makky,他给我发了这篇教程
按照本教程进行操作这就是我正在做的?!唯一的区别是我使用的是dataList而不是dataTable。请先尝试使用dataTable,看看这是否适用于您。正如您在我的示例中看到的那样。下载示例,看看是否有帮助。这是我也尝试过的,但我发现了问题ty:-)
@ManagedBean(name = "photoStreamer")
@ApplicationScoped
public class PhotoStreamer implements Serializable {
@Autowired
UserService userService;
private StreamedContent streamedContent;
public StreamedContent getStreamedContent() {
ExternalContext externalContext = FacesContext.getCurrentInstance()
.getExternalContext();
String userId = externalContext.getRequestParameterMap().get("userId");
if (StringUtils.isNotBlank(userId)) {
User user;
try {
user = userService.getUserById(Long.valueOf(userId));
byte[] image = user.getProfileJpegImage();
if (image != null && image.length > 0) {
return new DefaultStreamedContent(new ByteArrayInputStream(
image), "image/jpeg");
} else {
BufferedImage bufferedImg = new BufferedImage(250, 350,
BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bufferedImg.createGraphics();
g2.drawString("User has no ProfilImage", 50, 175);
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(bufferedImg, "png", os);
return new DefaultStreamedContent(new ByteArrayInputStream(
os.toByteArray()), "image/png");
}
} catch (NumberFormatException | UserServiceException | IOException e) {
throw new IllegalStateException(e);
}
}
return null;
}
}
<p:dataList styleClass="routeDatalist" value="#{searchRoutesBean.foundRoutes}" var="uiRoute">
<p:outputLabel value="USERID #{uiRoute.owner.id}"/>
<h:graphicImage value="#{photoStreamer.streamedContent(uiRoute.owner.id)}" styleClass="userProfileImage"/>
<p:/dataList>
public StreamedContent getStreamedContent(String userId) {
if (StringUtils.isNotBlank(userId)) {
User user;
try {
...
}