Java JSP使用数据库路径列出文件夹中的所有文件
我在数据库中直接保存文件的路径,因为我最多上载一个文件。 现在一个人最多可以添加5个文件,因此我根据他们的Java JSP使用数据库路径列出文件夹中的所有文件,java,postgresql,jsp,Java,Postgresql,Jsp,我在数据库中直接保存文件的路径,因为我最多上载一个文件。 现在一个人最多可以添加5个文件,因此我根据他们的姓名、姓氏和电话号码为他们创建了唯一的文件夹 在我的搜索JSP页面中,我得到如下内容: <c:if test="${Person.zalacznik != null}"> <td> <a href="file:///${Person.zalacznik}"><img src="cv_ico
姓名
、姓氏
和电话号码
为他们创建了唯一的文件夹
在我的搜索JSP页面中,我得到如下内容:
<c:if test="${Person.zalacznik != null}">
<td>
<a href="file:///${Person.zalacznik}"><img src="cv_icon.png" alt="CV" height="42" width="42"></a>
</td>
</c:if>
创建的文件列表来自:
<a href="file:///${Person.zalacznik}/filename"><img src="cv_icon.png" alt="CV" height="42" width="42"></a> <a href="file:///${Person.zalacznik}/filename2"><img src="cv_icon.png" alt="CV" height="42" width="42"></a>
如何做到这一点?创建一个自定义EL(表达式)语言函数,以便可以对其进行迭代。
您可以先试用一些示例代码
然后,JSP将如下所示:
<%@taglib prefix="f" uri="http://www.myurl/mytaglib.tld" %>
<c:forEach var="i" items="${f:listFiles(Person.zalacznik)}">
<a href="${i.location}"><img src="${i.icon}" alt="$[i.alt}"
height="42" width="42"></a>
</c:forEach>
在/WEB-INF/tags目录中创建标记库描述符mytaglib.tld:
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<tlib-version>1.0</tlib-version>
<uri>http://www.myurl/mytaglib.tld</uri>
<function>
<name>listFiles</name>
<function-class>my.el.Functions</function-class>
<function-signature>
my.el.Functions.FileInfo[] listFiles(java.lang.String)
</function-signature>
</function>
</taglib>
1
http://www.myurl/mytaglib.tld
列表文件
my.el.函数
my.el.Functions.FileInfo[]列表文件(java.lang.String)
在web.xml中,我们准备了EL函数的URL以供直接使用
http://www.myurl/mytaglib.tld
/WEB-INF/tags/mytaglib.tld
文件名在哪里?如果Person.zalacznik
只包含一个文件夹的名称,您将循环什么?让JSP浏览文件夹听起来像是一种安全风险,您需要后退一步,从后端开始:您需要存储路径集合,然后在JSP中循环该集合,而不是存储一个文件的一条路径。
package my.el;
public class Functions {
public static class FileInfo {
private final String location;
public FileInfo(String location) { this.location = location; }
public String getLocation() { return name; }
public String getIcon() { return "icon.png"; }
public String getAlt() { return "CV"; }
}
public static FileInfo[] listFiles(String directoryName) {
Path path = Paths.get(directoryName);
...
}
}
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<tlib-version>1.0</tlib-version>
<uri>http://www.myurl/mytaglib.tld</uri>
<function>
<name>listFiles</name>
<function-class>my.el.Functions</function-class>
<function-signature>
my.el.Functions.FileInfo[] listFiles(java.lang.String)
</function-signature>
</function>
</taglib>
<web-app
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<jsp-config>
<taglib>
<taglib-uri>http://www.myurl/mytaglib.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/mytaglib.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>