public interface Tag extends JspTag
static int EVAL_BODY_INCLUDE
ボディの評価をストリームに含める
static int EVAL_PAGE
ページの評価を続ける
static int SKIP_BODY
ボディの評価をスキップする
static int SKIP_PAGE
残りのページの評価をスキップする
______
ライフサイクル
setPageContext(PageContext pc)
↓
setParent(Tag t)
↓
属性のセット
↓
doStartTag()
EVAL_BODY_INCLUDE / SKIP_BODY
↓
doEndTag()
EVAL_PAGE / SKIP_PAGE
↓
release()
______
<サンプル>
package scwcd;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.Tag;
public class TagSample implements Tag {
private PageContext pc;
private Tag t;
public int doEndTag() throws JspException {
return SKIP_PAGE;
}
public int doStartTag() throws JspException {
JspWriter out = pc.getOut();
try {
out.println("Hello! World");
} catch (IOException e) {
e.printStackTrace();
}
return SKIP_BODY;
}
public Tag getParent() {
return t;
}
public void release() {}
public void setPageContext(PageContext pc) {
this.pc = pc;
}
public void setParent(Tag t) {
this.t = t;
}
}
____
scwcdTaglib.tld
<taglib>
<short-name>certified</short-name>
<tag>
<name>tagsample</name>
<tag-class>scwcd.TagSample</tag-class>
<body-content>emply</body-content>
</tag>
</taglib>
_____
web.xml
<jsp-config>
<taglib>
<taglib-uri>/scwcdTaglib</taglib-uri>
<taglib-location>/WEB-INF/tlds/scwcdTaglib.tld</taglib-location>
</taglib>
</jsp-config>
_____
tagsample.jsp
<%@ page contentType="text/html;charset=Shift_JIS"%>
<%@ taglib prefix="certified" uri="/scwcdTaglib"%>
<html>
<body>
<certified:tagsample />
</body>
</html>
<出力結果>
Hello! World
0 件のコメント:
コメントを投稿