Java SJC-WC試験対策資料 付録。
<?xml version="1.0" encoding="UTF-8"?>
<taglib
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://java.sun.com/xml/ns/j2ee
http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
</taglib>
description * †
display-name * †
icon * †
small-icon ? †
large-icon ? †
taglib-version ◇ †
- このタグライブラリが機能するJSPのバージョン。必須
short-name ◇ †
- このタグライブラリのGUIツールでの表示名(短縮名)
uri? †
- このタグライブラリを識別する文字列設定。通常はURI形式で書く
validator? †
- JSPプリコンパイル時に呼ばれて tag の妥当性を検証するクラス
- 検証クラス
- javax.servlet.jsp.taqgext.TagLibraryValidator? を継承
- ValidateMessage?[] validate(String prefix,String uri,PageDate? page) を overwrite
パラメータ | 説明 |
prefix | taglibに定義された接頭辞 |
uri | taglibに定義されたURI |
page | 検証対象のJSP |
検証には以下のメソッドを使う
クラス | メソッド | 概要 |
TagLibraryValidator? | void setInitParameters?(Map map) | 初期化パラメータを設定 |
TagLibraryValidator? | Map getInitParameters?() | 初期化パラメータの読み込み(このセクションの<param-name><param-value>タグに設定したもの) |
TagLibraryValidator? | void release() | このクラスの破棄(シングルトンの再生成?) |
PageData? | InputStream? getInputStream?() | 検証対象のJSP、<@page include> は展開済み |
- ValidateMessage? オブジェクトには、コンストラクタで id , message を設定可能
- public ValidateMessage?(id,message)
- idは、JSPをXMLシンタックスで記述した場合に画面に表示させることが可能。JSP中のtagの属性に jsp:id="3" などと記述する
description * †
validator-class †
init-param †
description* †
param-name †
param-value †
listener * †
description * †
display-name * †
icon * †
small-icon ? †
large-icon ? †
listener-class †
description * †
display-name * †
icon * †
small-icon ? †
large-icon ? †
name †
tag-class †
tei-class ? †
body-content ◇ †
- タグボディの内容に関する定義
値 | 説明 |
JSP | JSPコード (JSP1.2でのデフォルト)。シンプルタグの時設定不可 |
scriptless | テンプレートテキスト、EL式、タグ (JSP2.0でのデフォルト) |
tagdependent | タグハンドラによって独自に処理する(J2EEコンテナは処理しない) |
empty | タグボディがあってはいけない |
variable †
- タグハンドラで、page , request , sessison , application のどれかのスコープに設定した変数を<jsp:useBean>で設定した値のように JSP式の中の変数として扱えるようにする物
- 自動的にタグ属性を変数に格納してくれるわけではなく、タグハンドラの中でどこかのスコープに格納する必要がある
description * †
name-given ◇ | name-from-attribute ◇ †
属性 | 説明 |
name-given | あらかじめスクリプティング変数にする変数名が決まっている場合に、その変数名を設定する |
name-from-attribute | タグ属性の値がスクリプティング変数になる場合に、そのタグ属性名を設定する |
- (はまったところなので何度も繰り返しになるが、)ここで設定した変数名に自動的に値が格納されるわけではなく、タグハンドラのdoStartTag?()などで、スコープにここで設定した名前で登録する
- 排他利用(どちらか一方しか定義できない)
variable-class ? †
- クラス名。
- java.lang.Object
- java.lang.String
- java.lang.String[]
- java.util.Collection<String>
declare ? †
- スクリプト変数オブジェクトを新たに作成するか?
- デフォルトは true
- スクリプティング変数の有効期間
設定値 | 有効期間 | 説明 |
開始タグ | Tag BODYのJSP | 終了タグ | 文書終了までのJSP |
NESTED | × | ○ | × | × | デフォルト。doStartTag?()でスクリプティング変数をスコープに格納 |
AT_BEGIN | × | ○ | ○ | ○ | doStartTag?()でスクリプティング変数をスコープに格納 |
AT_END | × | × | × | ○ | doEndTag?()でスクリプティング変数をスコープに格納 |
attribute * †
description * †
name †
required ? †
(rtexprvalue? type?) | fragment? †
- retexprvalue
- タグ属性に、JSP式やEL式を許すか? ( true / false )
- type
- タグ属性の型
- デフォルト値は java.lang.String
- fragment
dynamic-attributes ? †
example ? †
tag-extension * †
extension-element + †
description * †
display-name * †
icon * †
small-icon ? †
large-icon ? †
name †
path †
example ? †
tag-extension * †
extension-element + †
description * †
display-name * †
icon * †
small-icon ? †
large-icon ? †
name †
- EL式からの参照名
- ${tag-prefix:name(arg1,arg2)}
function-class †
- ファンクションが格納されているクラス(完全修飾名)
function-signature †
- ELファンクションから呼び出されるメソッド。引数・返値は完全修飾名で記述すること
example? †
function-extension * †
extension-element + †
taglib-extension * †
extension-element + †
Java