implements IterationTag, Serializable
protected String id
id 属性の値を格納します。
protected PageContext pageContext
_______
TagSupport クラスは IterationTag インターフェースを実装してさらに便利なメソッドを付け加えてタグハンドラクラスを作成しやすくしています。
- TagSupport クラスにはあらかじめ id プロパティ(変数)が定義されています。
- getId メソッドで id キーの値を取得できる。
- public Object getValue(String key) で各プロパティ値を取得できる。
- public Enumeration<String> getValues メソッドですべてのキーを取得できます。
- public static final Tag findAncestorWithClass(Tag from,
Class klass) メソッド
指定されたクラスに最も近いタグを返す。 Tag インターフェースの getParent メソッドを呼び出す。
from 検索を始めるタグ
klass 検索するタグ
________
<サンプル>
scwcdTaglib.tld
<tag>
<name>tagsupportsample</name>
<tag-class>scwcd.TagSupportSample</tag-class>
<body-content>emply</body-content>
<dynamic-attributes>true</dynamic-attributes>
</tag>
________
web.xml
<jsp-config>
<taglib>
<taglib-uri>/scwcdTaglib</taglib-uri>
<taglib-location>/WEB-INF/tlds/scwcdTaglib.tld</taglib-location>
</taglib>
</jsp-config>
________
TagSupportSample.java
package scwcd;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.DynamicAttributes;
import javax.servlet.jsp.tagext.TagSupport;
public class TagSupportSample extends TagSupport
implements DynamicAttributes {
public void setDynamicAttribute(
String uri, String key, Object value)
throws JspException {
setValue(key, value);
}
public int doStartTag() throws JspException {
JspWriter out = pageContext.getOut();
Enumeration<String> keys = getValues();
while (keys.hasMoreElements()) {
try {
String key = keys.nextElement();
out.println("キー : " + key +
" 値 : " + getValue(key) +
"<br />");
} catch (IOException e) {
e.printStackTrace();
}
}
return SKIP_BODY;
}
}
________
tagsupportsample.jsp
<%@ page contentType="text/html;charset=Shift_JIS"%>
<%@ taglib prefix="certified" uri="/scwcdTaglib"%>
<html>
<body>
<certified:tagsupportsample name="Takashi" age="unknown" />
</body>
</html>
________
<出力結果>
キー : age 値 : unknown
キー : name 値 : Takashi
0 件のコメント:
コメントを投稿