p:galleria不显示小图片和描述

时间:2015-09-30 19:22:52

标签: jsf primefaces jsf-2.2

我在我的网站上使用了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;
        }

1 个答案:

答案 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中对此进行了测试,似乎对我有用,但我不确定这是否是解决问题的最佳解决方案。