我想使用JSF创建一个图库,所以我尝试了PrimeFaces <p:galleria>
。
支持bean galley.java
:
@ManagedBean
public class galley {
private List<String>list;
@PostConstruct
public void init(){
list=new ArrayList<String>();
File file=new File("/home/user/Pictures/wallpaper/batman");
File[]fList=file.listFiles();
for (File f:fList){
if (f.getName().endsWith("jpg"))
list.add(f.getAbsolutePath());
}
}
public List<String> getList() {
return list;
}
}
视图gallery.xhtml
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:p="http://primefaces.org/ui">
<p:galleria value="#{galley.list}" var="image" panelWidth="500" panelHeight="313" showCaption="true">
<p:graphicImage value="#{image}" alt="Image Description for #{image}" title="#{image}"/>
</p:galleria>
</html>
结果:
如您所见,图像未显示。这是怎么造成的,我该如何解决?
修改:
现在我的资源文件夹是这样的:
我的gallery.xhtml
是:
<!DOCTYPE html>
<html lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
>
<h:head>
<title>gallery</title>
</h:head>
<h:body>
<p:galleria value="#{galley.list}" var="image" panelWidth="500" panelHeight="313" showCaption="true">
<p:graphicImage value="resources/images/#{image}" alt="Image Description for #{image}" title="#{image}"/>
</p:galleria>
</h:body>
但它在null pointer exception
for (File f:fList)
答案 0 :(得分:0)
我想接受@BalusC的答案,但我不知道为什么他删除了答案
正如您在编辑过的部分中看到的那样,.xhtml
格式错误(真正的.xhtml部分在编辑部分中)
并且资源文件夹在编辑的部分
中更正了错误谢谢你@BalusC