原文: https://beginnersbook.com/2013/11/jstl-cremove-core-tag/

<c:delete>标签用于从指定范围或所有范围(页面,请求,会话和应用)中删除属性。

在下面的例子中,首先我使用<c:set>标签](https://beginnersbook.com/2013/11/jstl-cset-core-tag/)设置了两个变量,然后我使用<c:remove>删除了其中一个标签。正如您在输出屏幕截图中看到的那样 - 当我尝试显示两个变量时,对于第二个属性,页面没有获得任何值,并使用<c:out>标签default属性打印默认值。

  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  2. <html>
  3. <head>
  4. <title>Example of c:remove tag</title>
  5. </head>
  6. <body>
  7. <c:set var="Site" scope="session" value="BeginnersBook.com"/>
  8. <c:set var="author" scope="session" value="Chaitanya"/>
  9. <c:remove var="author"/>
  10. <a href="display.jsp">check attributes</a>
  11. </body>
  12. </html>

display.jsp

  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  2. <c:out value="${Site}"/><br>
  3. <c:out value="${author}" default="Attribute has no value"/>

JSTL`<c:delete>`核心标签 - 图1

JSTL`<c:delete>`核心标签 - 图2

<c:remove>标签的scope属性

上面我们编码像这样

  1. <c:remove var="author"/>

上面的代码从所有范围(页面,会话,应用,请求)中删除了一个属性。为了具体起见,我们必须在<c:remove>中指定scope属性,就像我在下面所做的那样 - 下面的 JSTL 语句将从会话范围中删除变量var

  1. <c:remove var="author" scope="session"/>