【问题标题】:How to skip page inside a jsp tag file?如何跳过jsp标记文件中的页面?
【发布时间】:2012-06-28 16:25:40
【问题描述】:

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

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

a.jsp:

abc
<mytag:b/>
def

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

谢谢。

【问题讨论】:

    标签: jsp tags


    【解决方案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>
    

    【讨论】:

      猜你喜欢
      • 2014-11-02
      • 2011-05-04
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 2014-09-05
      • 2016-02-19
      相关资源
      最近更新 更多