如何在jsp标记文件中跳过页面?

时间:2012-06-28 16:25:40

标签: jsp tags

编码标签文件时,如何指示调用者跳过页面的其余部分?

假设我有一个jsp文件a.jsp。 a.jsp将调用标记文件b.tag。

a.jsp:

abc
<mytag:b/>
def

当返回时,我想跳过页面的其余部分,在我的情况下,“def”将不会显示。

感谢。

1 个答案:

答案 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>
相关问题