编码标记文件时,如何指示调用者跳过页面的其余部分?
假设我有一个 jsp 文件 a.jsp。a.jsp 将调用标记文件 b.tag。
一个.jsp:
abc
<mytag:b/>
def
返回时,我想跳过页面的其余部分,在我的情况下“def”将不会显示。
谢谢。
使用标记文件无法做到这一点。
SimpleTag 可以抛出SkipPageException
以跳过调用者页面的进一步执行。使用标记文件无法做到这一点,因为 JSP 规范说它可能导致未定义的行为。
在你的情况下,如果你需要这样的功能。您应该将条件部分作为片段发送到标记文件。并且标签文件可以根据条件决定是否调用片段。
mytag.tag
<%@ tag body-content="empty" %>
<%@ attribute name="pass" fragment="true" required="true" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:if test="${condition}">
<jsp:invoke fragment="pass" />
</c:if>
你可以像这样使用这个标签:
<tags:mytag>
<jsp:attribute name="value" >
<jsp:include ....../>
//write your jsp fragment code which you want to skip codtionally
</jsp:attribute>
</tag:mytag>