编码标签文件时,如何指示调用者跳过页面的其余部分?
假设我有一个jsp文件a.jsp。 a.jsp将调用标记文件b.tag。
a.jsp:
abc
<mytag:b/>
def
当返回时,我想跳过页面的其余部分,在我的情况下,“def”将不会显示。
感谢。
答案 0 :(得分:1)
使用标记文件无法做到这一点。
SimpleTag可以抛出SkipPageException
以跳过调用者页面的进一步执行。使用标记文件无法做到这一点,因为JSP规范说它可能会导致未定义的行为。
在您的情况下,如果您需要此类功能。您应该将条件部分作为片段发送到Tag File。并且基于条件的标签文件可以决定是否调用片段。
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>