<c:forEach var="fileName" items="${fileName}"> ${fileName} </c:forEach>去掉¥{fileName}这个值最后一个字符、
时间: 2024-05-17 10:15:18 浏览: 120
可以使用以下代码来实现:
<c:forEach var="fileName" items="${fileName}">
${fn:substring(fileName, 0, fn:length(fileName)-1)}
<c:if test="${!loop.last}">、</c:if>
</c:forEach>
这里使用了JSTL的<fn:substring>和<fn:length>函数来截取掉最后一个字符,然后使用<c:if>标签判断是否是最后一个元素,如果不是则输出"、"。
相关问题
listfile.jsp页面如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE HTML> <html> <head> <title>下载文件显示页面</title> </head> <body> <!-- 遍历Map集合 --> <c:forEach var="me" items="${fileNameMap}"> <c:url value="${pageContext.request.contextPath}/servlet/DownLoadServlet" var="downurl"> <c:param name="filename" value="${me.key}"></c:param> </c:url> ${me.value}<a href="${downurl}">下载</a> <br/> </c:forEach> </body> </html> 将<!-- 遍历Map集合 --> <c:forEach var="me" items="${fileNameMap}"> <c:url value="${pageContext.request.contextPath}/servlet/DownLoadServlet" var="downurl"> <c:param name="filename" value="${me.key}"></c:param> </c:url> ${me.value}<a href="${downurl}">下载</a> <br/> </c:forEach>修改成类似<form action="${pageContext.request.contextPath}/servlet/UploadHandleServlet" enctype="multipart/form-data" method="post"> <input type="submit" value="下载">的类型,点击<input type="submit" value="下载">按钮,要跳转到用于处理文件下载的Servlet,DownLoadServlet,即${pageContext.request.contextPath}/servlet/DownLoadServlet,要完整代码
以下是修改后的代码:
<form action="${pageContext.request.contextPath}/servlet/DownLoadServlet" method="post">
<c:forEach var="me" items="${fileNameMap}">
<input type="hidden" name="filename" value="${me.key}">
${me.value} <br/>
</c:forEach>
<input type="submit" value="下载">
</form>
注意修改了form标签的action属性,将其指向处理文件下载的Servlet,同时添加了一个隐藏的input标签,用于传递文件名参数。在循环中输出文件名,并添加换行符,方便阅读。最后添加了一个下载按钮,点击后提交表单,跳转到DownLoadServlet进行文件下载处理。
<c:forEach var="fileName" items="${fileName}"> ${fileName} </c:forEach>--%>给这个${fileNmae}显示出来的每一个值加一个、去掉最后一个、
可以使用 JSTL 提供的 `<c:out>` 标签和 `<c:forEach>` 标签结合使用来实现这个需求。
具体的做法是,在 `<c:forEach>` 标签内部使用 `${fileName}` 表达式获取文件名列表中的每一个值,并使用 `${status}` 变量获取循环状态对象。然后,在 `<c:out>` 标签中使用 `${fileName}` 表达式获取当前文件名,并在文件名后面添加一个逗号,但是不要在最后一个文件名后面添加逗号。具体的代码如下所示:
```
<c:forEach var="fileName" items="${fileName}" varStatus="status">
<c:out value="${fileName}" />
<c:if test="${!status.last}">,</c:if>
</c:forEach>
```
其中,`varStatus="status"` 表示在循环过程中生成循环状态对象,并将其赋值给 `status` 变量。`${!status.last}` 表达式表示当前是否为最后一个文件名,如果是最后一个文件名,则不添加逗号。
使用以上代码,可以将 `${fileName}` 显示出来的每一个值加一个逗号并去掉最后一个逗号。
阅读全文