タグファイルをコーディングするときに、ページの残りの部分をスキップするように呼び出し元に指示するにはどうすればよいですか?
jspファイルa.jspがあるとしましょう。a.jspはタグファイルb.tagを呼び出します。
a.jsp:
abc
<mytag:b/>
def
が返されたときに、ページの残りの部分をスキップしたいのですが、私の場合は「def」は表示されません。
ありがとう。
タグファイルを使用してこれを行う方法はありません。
SimpleTagSkipPageException
は、呼び出し元ページのそれ以上の実行をスキップするためにスローできます。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>