<c:forEach var="item" items="${bean.content}" > <p>${item}</p> </c:forEach>如果输出的结果以<p> </p>结尾就把最后的<p> </p>去掉
时间: 2023-07-09 09:17:28 浏览: 89
可以使用 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>`。
相关问题
<c:forEach var="item" items="${bean.content}"> <p>${item}</p> </c:forEach>如果值以<p> </p>结尾就把结尾i的<p> </p>删掉直到结尾不是<p> </p>为止
您好!根据您的描述,可以使用以下代码来删除以"<p> </p>"结尾的值:
```
<c:set var="size" value="${fn:length(bean.content) - 1}" />
<c:forEach var="i" begin="0" end="${size}">
<c:set var="item" value="${bean.content[i]}" />
<c:if test="${fn:endsWith(item, '<p> </p>')}">
<c:set var="trimmedItem" value="${fn:substring(item, 0, fn:length(item) - 11)}" />
<c:if test="${fn:endsWith(trimmedItem, '<p> </p>')}">
<c:set var="item" value="${trimmedItem}" />
<c:set var="j" value="${i}" />
<c:while test="${j < size}">
<c:set var="nextItem" value="${bean.content[j + 1]}" />
<c:if test="${fn:endsWith(nextItem, '<p> </p>')}">
<c:set var="trimmedNextItem" value="${fn:substring(nextItem, 0, fn:length(nextItem) - 11)}" />
<c:if test="${fn:endsWith(trimmedNextItem, '<p> </p>')}">
<c:set var="j" value="${j + 1}" />
</c:if>
<c:else>
<c:set var="j" value="${size}" />
</c:else>
</c:if>
<c:else>
<c:set var="j" value="${size}" />
</c:else>
</c:while>
</c:if>
</c:if>
<p>${item}</p>
</c:forEach>
```
这段代码会遍历"bean.content"中的每个值并检查是否以"<p> </p>"结尾。如果是,则从该值中删除该字符串并继续检查下一个值,直到找到一个非以"<p> </p>"结尾的值。然后,它会输出已修剪的值。
希望这可以帮助您!如果您有任何其他问题,请随时问我。
<c:forEach var="item" items="${bean.content}" > <p>${item}</p> </c:forEach>结果如果最后一个元素是<p> </p>就把最后一个<p> </p>去掉然后输出
可以在循环结束后,通过 `${fn:trim()}` 函数去掉 `${bean.content}` 中的空格,然后使用 `${fn:endsWith()}` 函数判断最后一个元素是否以 `<p> </p>` 结尾,如果是,则使用 `${fn:substring()}` 函数去掉最后一个元素。具体的代码如下所示:
```
<c:forEach var="item" items="${bean.content}" >
<p>${item}</p>
</c:forEach>
<c:set var="lastItem" value="${fn:trim(bean.content[fn:length(bean.content) - 1])}" />
<c:if test="${fn:endsWith(lastItem, '<p> </p>')}">
<c:set var="bean.content" value="${fn:substring(bean.content, 0, fn:length(bean.content) - 1)}" />
</c:if>
```
其中,`${fn:length(bean.content) - 1}` 表达式表示获取 `${bean.content}` 中倒数第二个元素的索引值,`${fn:trim(bean.content[fn:length(bean.content) - 1])}` 表达式表示获取倒数第二个元素的值,并去掉其中的空格。`${fn:endsWith(lastItem, '<p> </p>')}` 表达式表示判断最后一个元素是否以 `<p> </p>` 结尾。如果是,则使用 `${fn:substring(bean.content, 0, fn:length(bean.content) - 1)}` 表达式去掉最后一个元素。
使用以上代码,可以将 `${bean.content}` 显示出来的每一个值作为 `<p>` 元素输出,并去掉最后一个元素中的空格和 `<p> </p>`。