Image我的ManagedBean中有对象.如何在我的JSF页面中获取它?
这似乎不起作用:
<h:graphicImage value="#{userProfile.image}" />其中image是类userProfile中的字段变量.
Image来自MySql,如下所示.
int len = rs.getInt("ImageLen");
if(len != 0){
byte[] b = new byte[len];
InputStream in = rs.getBinaryStream("Image");
in.read(b);
in.close();
this.image = Toolkit.getDefaultToolkit().createImage(b);
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:java.lang.ClassCastException - sun.awt.image.ToolkitImage cannot be cast to java.lang.String.
我在Primefaces组件graphicImage中显示图像时遇到问题.
当我的MB是SessionScoped时,一切正常.但是当它ViewScoped时,图像没有显示出来.
我可以保持SessionScoped,但我的页面上传/删除图像,并存储在PostgreSQL中(请,我的软件架构强迫我这样做).问题是当我插入新图像或删除一个图像时,页面仍显示最后的值(未刷新的图像),直到我关闭浏览器并再次打开.我希望通过ViewScoped我可以重新加载页面,我的问题就解决了.
这是页面的快照:
<p:panel id="panelListFotoProduto" header="Fotos do Produto" toggleable="true" collapsed="false" closable="false"
toggleSpeed="500" widgetVar="panelListFotoProduto" visible="true" >
<p:dataTable id="listFotoProduto" paginatorPosition="bottom" value="#{produtoMB.listProdutoFoto}"
lazy="true" var="pf" selectionMode="single" paginator="true" rows="1"
rowKey="#{pf.id}">
<p:column style="width: 100%" >
<h:panelGrid columns="1" cellpadding="4">
<p:graphicImage id="imageProduto" value="#{produtoMB.getFoto(pf)}" onclick="dialogFotoProduto.show()"/>
<p:commandButton value="Excluir" style="width: 100%;" update=":growl :formProduto:panelListFotoProduto" actionListener="#{produtoMB.removeFoto(pf)}"/>
</h:panelGrid>
</p:column>
<f:facet name="footer">
<h:panelGrid columns="1" cellpadding="4">
<p:commandButton value="Adicionar" style="width: 100%;" update=":growl :formProduto:panelListFotoProduto" actionListener="#{produtoMB.adicionarFoto()}"/>
<h:outputText id="totalProdutos" style="font-weight:bold" value="Total de Fotos Cadastrados: #{produtoMB.listProdutoFoto.size() }"/>
</h:panelGrid>
</f:facet>
</p:dataTable>
</p:panel>
Run Code Online (Sandbox Code Playgroud)
这是我的MB:
@ManagedBean
@SessionScoped
public class ProdutoMB {
private Produto …Run Code Online (Sandbox Code Playgroud) 我有MySQL数据库,它将图像存储在一blob列中.我想在PrimeFaces中展示它们<p:dataTable>.我怎样才能做到这一点?
我有一个与浏览器中的Primefaces4 meida类型渲染pdf文件有关的问题.我已经成功地尝试了来自primefaces网站的展示示例.现在我想获得一个新功能,它在左侧面板中提供了一个带有文档节点的树结构.用户可以选择一个文档在中心面板中显示它.这意味着一旦用户选择了树上的一个文档,它就会在backbean中生成pdf媒体字段.
相关代码如下所示:
backbean:
@ManagedBean
@ViewScoped
public class DocumentsBean implements Serializable {
private static final long serialVersionUID = 3560539268513760978L;
private TreeNode root;
private String url;
private TreeNode selectedNode;
private StreamedContent media;
public DocumentsBean() {
root = new DefaultTreeNode("Root");
}
public TreeNode getRoot() {
return root;
}
public TreeNode getSelectedNode() {
return selectedNode;
}
public void setSelectedNode(TreeNode selectedNode) {
this.selectedNode = selectedNode;
}
public void onNodeSelect(NodeSelectEvent event) {
File file = (File) this.selectedNode.getData();
generatePDF(file);
}
public String getUrl() {
return url; …Run Code Online (Sandbox Code Playgroud) 我有一个简单的jsf 2.1,以前可以使用primefaces 3.4在Java EE 6上正常工作。
当我迁移到glassfish 4.0和primefaces 5.1时,每次在Netbeans上重新部署项目时,都会遇到以下异常:
java.io.NotSerializableException:org.primefaces.model.DefaultStreamedContent
java.io.NotSerializableException:org.primefaces.component.datatable.DataTable
即使抛出此异常,项目也将正确部署并运行!
有什么事吗
jsf ×4
primefaces ×4
blob ×1
bytearray ×1
database ×1
datatable ×1
graphicimage ×1
image ×1
jboss7.x ×1
jsf-2 ×1
jsf-2.2 ×1
media ×1
mysql ×1
pdf ×1
view-scope ×1