<c:forEach var="item" items="${bean.content}" > <p>${item}</p> </c:forEach>如果输出的结果以<p> </p>结尾就把最后的<p> </p>去掉
时间: 2023-07-09 08:17:28 浏览: 133
可以使用 JSTL 提供的 `<c:if>` 标签结合 `${status.last}` 表达式来判断是否为最后一个元素,如果是最后一个元素,则不输出 `<p> </p>`。
具体的做法是,在 `<c:forEach>` 标签内部使用 `${bean.content}` 表达式获取内容列表中的每一个值,并使用 `${status}` 变量获取循环状态对象。然后,在 `<c:if>` 标签中使用 `${status.last}` 表达式判断是否为最后一个元素,如果不是最后一个元素,则输出 `<p>${item}</p>`,否则不输出任何内容。具体的代码如下所示:
```
<c:forEach var="item" items="${bean.content}" varStatus="status">
<c:if test="${not status.last}">
<p>${item}</p>
</c:if>
</c:forEach>
```
其中,`varStatus="status"` 表示在循环过程中生成循环状态对象,并将其赋值给 `status` 变量。`${not status.last}` 表达式表示当前是否为最后一个元素,如果不是最后一个元素,则输出 `<p>${item}</p>`。
使用以上代码,可以将 `${bean.content}` 显示出来的每一个值作为 `<p>` 元素输出,但是最后一个元素不输出 `<p> </p>`。
相关问题
<div id="center"> <p> ${bean.content} <%-- ${content}--%> </p> </div>怎么遍历这个并判断{bean.content}是否包含指定字符并把它删除
您可以使用JSTL标签库中的`c:forEach`标签遍历`${bean.content}`中的内容,并在循环中使用Java的字符串操作方法判断和删除指定字符。
以下是一个示例代码:
```jsp
<div id="center">
<c:forEach var="item" items="${bean.content}">
<c:if test="${fn:contains(item, '指定字符')}">
<%-- 如果item包含指定字符,则使用replace方法删除指定字符 --%>
<c:set var="item" value="${fn:replace(item, '指定字符', '')}" />
</c:if>
<p>${item}</p>
</c:forEach>
</div>
```
在上面的代码中,使用`c:forEach`标签遍历`${bean.content}`中的内容,并使用`c:if`标签和`fn:contains`函数判断`${item}`是否包含指定字符。如果`${item}`包含指定字符,则使用`fn:replace`函数将指定字符替换为空字符串。最后输出处理后的`${item}`。
需要引入`fn`标签库,示例代码如下:
```jsp
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
```
其中,`uri`属性是`fn`标签库的命名空间。在使用`fn`标签库中的函数时,需要在函数名前面添加`fn:`前缀。
package com.bobo.book.servlet; import com.bobo.book.bean.User; import com.bobo.book.dao.IUserService; import com.bobo.book.dao.impl.UserServiceImpl; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; @WebServlet(name = "UserServlet", value = "/userServlet") public class UserServlet extends HttpServlet { // 获取对应的Service对象 private IUserService userService = new UserServiceImpl(); protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request,response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1.查询所有的用户信息 List<User> list = userService.queryUser(null); // 2.把查询的数据存储在了Request作用域中 request.setAttribute("list",list); // 3.页面跳转到JSP页面中 request.getRequestDispatcher("/web/user.jsp").forward(request,response); } } <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!-- 引入JSTL的标签库 --> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>Title</title> </head> <body> <h1>用户信息</h1> <c:forEach items="${requestScope.list}" var="user"> ${user.id}--${user.userName} --${user.password} </br> </c:forEach> </body> </html> 为什么第一部分代码无法跳转到user.jsp
可能是因为你没有在web.xml文件中配置该Servlet的映射关系,或者value的值不正确。请检查一下web.xml文件中是否添加了如下配置:
```
<servlet>
<servlet-name>UserServlet</servlet-name>
<servlet-class>com.bobo.book.servlet.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/userServlet</url-pattern>
</servlet-mapping>
```
其中,servlet-name标签中的名称必须和@WebServlet注解中的name属性值一致,url-pattern标签中的值必须和@WebServlet注解中的value属性值一致。如果已经配置好了,请检查一下Tomcat控制台是否有报错信息。
阅读全文