我在我的网站上使用了primafeces galleria。它连接到mysql,我可以显示来自数据库的图像。但是没有显示小图像和描述。我的问题是什么。我该如何显示它们?
<p:galleria value="#{gallery.Print()}" var="news"
panelWidth="650" panelHeight="400" showCaption="true">
<h:outputLink
value="http://localhost:8080/newsSite/faces/template/index.xhtml">
<p:graphicImage value="#{news.image}" alt="#{news.title}" title="#{news.title}"
width="100%" height="100%" />
</h:outputLink>
</p:galleria>
Bean.java
@ManagedBean(name="gallery")
@SessionScoped
public class Bean {
private Statement st;
private ResultSet rs;
public List<galleryNews> Print(){
Connect nesne = new Connect();
List<galleryNews> galleryList = new ArrayList<galleryNews>();
try {
st=nesne.getCon().createStatement();
rs=st.executeQuery("select * from galleryNews");
while(rs.next()){
galleryNews obj = new galleryNews();
obj.setId(rs.getInt("id"));
obj.setTitle(rs.getString("title"));
obj.setText(rs.getString("text"));
obj.setImage(rs.getString("image"));
galleryList.add(obj);
}
} catch (Exception e) {
System.err.println(e);
}
return galleryList;
}
答案 0 :(得分:1)
这是由于p:graphicImage
嵌套在h:outputLink
- p:galleria
需要p:graphicImage
成为其直接子项的原因造成的,否则似乎无法提取alt
}和title
值。
我能够通过将链接移动到p:graphicImage
并提供一些其他样式来解决此问题 - 请注意,我使用了p:link
而没有标签而不是h:outputLink
:
<p:galleria value="#{gallery.Print()}" var="news" panelWidth="650" panelHeight="400"
showCaption="true">
<p:graphicImage value="#{news.image}" alt="#{news.title}" title="#{news.title}"
width="100%" height="100%">
<p:link value=""
style="width:100%; height:100%; display:block; position:absolute;"
href="http://localhost:8080/newsSite/faces/template/index.xhtml" />
</p:graphicImage>
</p:galleria>
我在Firefox,Chrome和IE 11中对此进行了测试,似乎对我有用,但我不确定这是否是解决问题的最佳解决方案。