我正在直接保存数据库中的文件路径,因为我上传了最多一个文件。
现在一个人最多可以添加5个文件,因此我根据他们的name
,lastname
和phone number
为他们创建了唯一的文件夹。
在我的搜索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>
但它是文件的路径。我需要更改它,以便为文件夹中的每个文件执行forEach循环。
所以:
${Person.zalacznik}
是唯一文件夹的路径,我需要从中显示所有文件
<td> file list </td>
从以下位置创建的文件列表:
<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>
怎么做?
答案 0 :(得分:0)
创建自定义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>
taglib声明和函数将按以下方式完成:
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);
...
}
}
在目录/ 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>
在web.xml中,我们准备EL函数的URL直接用于 。
<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>