実行画面 †
- doAfterBody?() で、pageContext.getOut():JSPWriter に書き込んだ内容は、HTMLではなく bodyContent に格納されるようだ
- [[The tag body is " あいうえお ".]] の部分
- doEndTag?() で、pageContext.getOut():JSPWriter に書き込んだ内容は、HTMLに出力される
- タグボディは「 あいうえお [[The tag body is " あいうえお ".]]」でした の部分
<%@ page contentType="text/html;charset=Windows-31J" %>
<%@ taglib uri="/WEB-INF/tag.tld" prefix="myTag" %>
<html>
<head>
<title>Tag Body Example</title>
</head>
<body>
BEFORE TAG
<hr/>
<myTag:bodyExam>
あいうえお
</myTag:bodyExam>
<hr/>
AFTER TAG
</body>
</html>
package com.snail.sjcwc;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;
public class TagBodyExam extends BodyTagSupport {
public int doStartTag() throws JspException{
return EVAL_BODY_BUFFERED;
}
public int doAfterBody() throws JspException {
try {
pageContext.getOut().print(
"[[The tag body is \"" + bodyContent.getString() + "\".]]");
pageContext.getOut().flush();
} catch (IOException e) {
e = null;
}
return SKIP_BODY;
}
public int doEndTag() throws JspException {
try {
pageContext.getOut().print(
"タグボディは「" + bodyContent.getString() + "」でした");
} catch (IOException e) {
e = null;
}
return EVAL_PAGE;
}
}
Java SJC-WC JSP#tagBody