1

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

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

一个.jsp:

abc
<mytag:b/>
def

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

谢谢。

4

1 回答 1

1

使用标记文件无法做到这一点。

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>
于 2012-06-28T17:07:19.493 回答