A Day In The Life

とあるプログラマの備忘録

カスタムタグ

ページ送りの続きです。

次へボタン、現在ページ、前へボタンのJSPをカスタムタグで実装することにしました。
ページング
↑こんな感じのタグを作成。

カスタムタグと言えば一般的にTagSupportクラスを継承して、doStartTagメソッドをオーバーライドします。

public int doStartTag() Throws JspException {
  JspWriter out = pageContext.getOut();
  out.print("HogeHoge");
  return SKIP_BODY;
}

とこんな感じです。

はじめはわけがわからんかったので

public int doStartTag() Throws JspException {
  JspWriter out = pageContext.getOut();
  out.print("<html:button property="Hoge" value="Hoge" />");
  return SKIP_BODY;
}

と書いてました。
JSPを書いても何にも表示されないorz

Htmlを書くしかないみたいです...。JSPが何かを考えれば当たり前の話ですが...。



タグクラスからFormBeanのインスタンスを参照したかったので

FormBean form = (FormBean)TagUtils.getInstance().lookup(pageContext,"FormBean","session");

と書いてFormBeanのインスタンスをとってきました。

lookupの引数、FormBeanのところはstruts-config.xmlのform-bean名を入れて、sessionはFormBeanのscopeをいれればOKです。

FormBeanのインスタンスが取得できたのでいろいろ出来て便利でした。