jp.terasoluna.fw.web.taglib
クラス StringFormatterTagBase

java.lang.Object
  上位を拡張 javax.servlet.jsp.tagext.TagSupport
      上位を拡張 jp.terasoluna.fw.web.taglib.StringFormatterTagBase
すべての実装されたインタフェース:
java.io.Serializable, javax.servlet.jsp.tagext.IterationTag, javax.servlet.jsp.tagext.JspTag, javax.servlet.jsp.tagext.Tag
直系の既知のサブクラス:
LeftTag, LTrimTag, RTrimTag, TrimTag

public abstract class StringFormatterTagBase
extends javax.servlet.jsp.tagext.TagSupport

文字列をフォーマットして出力、あるいはスクリプティング変数として定義する カスタムタグための抽象基底クラス。

文字列の切り出し、トリム等のフォーマットを行うカスタムタグのクラスは この基底クラスを継承して作成する。(TERASOLUNA の提供する fmtx カスタムタグライブラリ等)

このクラスによってフォーマットされた文字列が、レスポンスへ出力される のか、あるいはスクリプティング変数にセットされるのか動作の違いは、 id 属性の有無で決定される。

フォーマット対象となる文字列は、以下の優先順序で決定される。

  1. value 属性が指定されている場合には、 その指定された文字列をフォーマットする。
  2. name 属性で bean名が指定されている場合には、 その指定された bean のインスタンスの、 property 属性で指定されたプロパティをフォーマットする。

ただし、name 属性が指定されているときに、 property 属性が指定されていない場合には、name 属性で示されるインスタンスの値(toString() メソッドで 返されるオブジェクトの文字列表現)が、フォーマットの対象となる。

name 属性で指定された bean が見つからなかったときの カスタムタグの動作は、ignore 属性によって決定される。 ignore 属性がtrueである場合には、 bean が見つからなかったときには単に無視され、何も出力しない (id 属性が指定されている場合には、スクリプティング変数に セットされない)。

ignore 属性がfalse(デフォルト)である場合には、 name 属性が指定されたbeanが見つからなかったときには JspException が投げられる。

bean の検索対象として、scope 属性を指定することができる。 scope 属性を指定しなかった場合には、 javax.servlet.jsp.PageContext クラスの findAttribute() メソッドの検索順序で検索される。

id 属性が指定された場合には、フォーマットされた文字列を出力 せずに、id 属性で指定された変数名のスクリプティング変数にセット する。

filter 属性が true(デフォルト)で あるときには、出力される際に、HTML 特殊文字( org.apache.struts.util.ResponceUtils クラスの filter() メソッドで処理されるもの。 「<」、「>」、「&」、「"」の4文字)をエスケープする。 スクリプティング変数にセットする場合には、filter 属性は無視 され、フォーマットされた文字列がそのままスクリプティング変数にセットされ る。

replaceSpToNbsp属性がtrue(デフォルト)で あるときには、出力される際に、1Byteコードのスペース(半角スペース)が 存在する場合「&nbsp;」に変換する。 スクリプティング変数にセットする場合には、replaceSpToNbsp 属性は無視 され、フォーマットされた文字列がそのままスクリプティング変数にセットされ る

StringFormatterTagBase クラスを継承したサブクラスでは、 実際に文字列のフォーマットを行う抽象メソッド doFormat() を実装する。


タグがサポートする属性

StringFormatterTagBase では、以下の属性をサポートする。

属性名 デフォルト 必須性 実行時式 記述
id - 任意 false フォーマットした文字列を出力せずに、スクリプティング変数 にセットする際に指定する。フォーマットされた文字列をスクリプティング 変数にセットする場合には、filter 属性の指定に関わらずHTML 特殊文字はエスケープされない。
filter true - 任意 フォーマットされた文字列を出力する際に、HTML 特殊文字を エスケープするかどうかを指定する。ただし、id 属性が 指定されていた場合には、無視される。
ignore false - 任意 name 属性で指定した beanが 見つからなかったときに無視するかどうかを指定する。false を 指定すると、bean が見つからなかったときに JspExceptionが投げられる。
name - - 任意 フォーマット対象の文字列をプロパティに持つ bean の名前。property 属性が指定されて いなかったときには、name 属性で指定されたインスタンスの 文字列表現 toString() メソッドで返される文字列) がフォーマットの対象となる。value 属性が指定されていた場合には、無視される。
property - - 任意 name 属性で指定された bean においてアクセスされるプロパティの名前。value 属性が 指定されていた場合には無視される。
scope findAttribute()メソッドの検索順序) - 任意 name 属性で指定された bean を検索する際のスコープ。
value なし - 任意 フォーマットする文字列。value 属性を 指定した場合には、name 属性、および property 属性は無視される。
replaceSpToNbsp - false true この属性がtrueにセットされ、 指定したbeanプロパティの値に1Byteコードのスペースが存在する場合 &nbsp;に置換する。 無効にするためには、この属性に明示的に false をセットする必要がある。 ただし、id 属性が指定されていた場合には、無視される。

カスタムタグのスクリプティング変数

StringFormatterTagBase では以下の変数をサポートする。

スクリプティング変数名 変数の利用可能範囲 記述
カスタムタグのid属性で指定された名前 java.lang.String 開始タグ以降 このカスタムタグで出力せず、スクリプティング変数へ 設定する場合の変数名。

関連項目:
LeftTag, RTrimTag, LTrimTag, TrimTag, 直列化された形式

フィールドの概要
protected  boolean filter
          出力中のHTML特殊文字をフィルターするかどうか。
protected  java.lang.String id
          そのページ内で利用できるようにするためのスクリプティング変数の名前。
protected  boolean ignore
          beanが見つからなかったときに、単に無視する(何も出力しない)かどうか。
private static org.apache.commons.logging.Log log
          ログクラス
protected  java.lang.String name
          フォーマット対象のデータを含むbeanの名前。
protected  java.lang.String property
          指定されたbeanにおいてアクセスされるプロパティの名前。
protected  boolean replaceSpToNbsp
           半角スペースを &nbsp; と置換する。
protected  java.lang.String scope
          指定されたbeanを検索するスコープ
protected  java.lang.String value
          フォーマット対象の値(文字列)
 
クラス javax.servlet.jsp.tagext.TagSupport から継承されたフィールド
pageContext
 
インタフェース javax.servlet.jsp.tagext.IterationTag から継承されたフィールド
EVAL_BODY_AGAIN
 
インタフェース javax.servlet.jsp.tagext.Tag から継承されたフィールド
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
 
コンストラクタの概要
StringFormatterTagBase()
           
 
メソッドの概要
protected abstract  java.lang.String doFormat(java.lang.String s)
          文字列のフォーマットを行う抽象メソッド。
 int doStartTag()
          タグ評価開始時に呼ばれるメソッド。
 boolean getFilter()
          出力中のHTML特殊文字をフィルターするかどうかを取得する。
 java.lang.String getId()
          スクリプティング変数の名前を取得する。
 boolean getIgnore()
          beanが見つからなかった場合に無視するかどうかを取得する。
 java.lang.String getName()
          フォーマット対象のデータを含むbeanの名前を取得する。
 java.lang.String getProperty()
          指定されたbeanにおいてアクセスされるプロパティ名を取得する。
 boolean getReplaceSpToNbsp()
           replaceSpToNbspget メソッド
 java.lang.String getScope()
          指定されたbeanを検索するスコープを取得する。
 java.lang.String getValue()
          フォーマット対象の値を取得する。
 void release()
          すべてのアロケートされた資源を解放する
 void setFilter(boolean filter)
          出力中のHTML特殊文字をフィルターするかどうかを設定する。
 void setId(java.lang.String id)
          スクリプティング変数の名前を設定する。
 void setIgnore(boolean ignore)
          beanが見つからなかった場合に無視するかどうかを設定する。
 void setName(java.lang.String name)
          フォーマット対象のデータを含むbeanの名前を設定する。
 void setProperty(java.lang.String property)
          指定されたbeanにおいてアクセスされるプロパティ名を設定する。
 void setReplaceSpToNbsp(boolean replaceSpToNbsp)
           replaceSpToNbspset メソッド
 void setScope(java.lang.String scope)
          指定されたbeanを検索するスコープを設定する。
 void setValue(java.lang.String value)
          フォーマット対象の値を設定する。
 
クラス javax.servlet.jsp.tagext.TagSupport から継承されたメソッド
doAfterBody, doEndTag, findAncestorWithClass, getParent, getValue, getValues, removeValue, setPageContext, setParent, setValue
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

log

private static org.apache.commons.logging.Log log
ログクラス


id

protected java.lang.String id
そのページ内で利用できるようにするためのスクリプティング変数の名前。


filter

protected boolean filter
出力中のHTML特殊文字をフィルターするかどうか。デフォルトはtrue。


ignore

protected boolean ignore
beanが見つからなかったときに、単に無視する(何も出力しない)かどうか。 無視しない場合には、例外を投げる。デフォルトはfalse(例外を投げる)。


name

protected java.lang.String name
フォーマット対象のデータを含むbeanの名前。


property

protected java.lang.String property
指定されたbeanにおいてアクセスされるプロパティの名前。


scope

protected java.lang.String scope
指定されたbeanを検索するスコープ


value

protected java.lang.String value
フォーマット対象の値(文字列)


replaceSpToNbsp

protected boolean replaceSpToNbsp

半角スペースを &nbsp; と置換する。

コンストラクタの詳細

StringFormatterTagBase

public StringFormatterTagBase()
メソッドの詳細

getId

public java.lang.String getId()
スクリプティング変数の名前を取得する。

オーバーライド:
クラス javax.servlet.jsp.tagext.TagSupport 内の getId
戻り値:
スクリプティング変数名

setId

public void setId(java.lang.String id)
スクリプティング変数の名前を設定する。

オーバーライド:
クラス javax.servlet.jsp.tagext.TagSupport 内の setId
パラメータ:
id - スクリプティング変数名

getFilter

public boolean getFilter()
出力中のHTML特殊文字をフィルターするかどうかを取得する。

戻り値:
出力中のHTML特殊文字をフィルターする場合はtrue

setFilter

public void setFilter(boolean filter)
出力中のHTML特殊文字をフィルターするかどうかを設定する。

パラメータ:
filter - 出力中のHTML特殊文字をフィルターする場合はtrue

getIgnore

public boolean getIgnore()
beanが見つからなかった場合に無視するかどうかを取得する。

戻り値:
無視する場合はtrue

setIgnore

public void setIgnore(boolean ignore)
beanが見つからなかった場合に無視するかどうかを設定する。

パラメータ:
ignore - 無視する場合はtrue

getName

public java.lang.String getName()
フォーマット対象のデータを含むbeanの名前を取得する。

戻り値:
beanの名前

setName

public void setName(java.lang.String name)
フォーマット対象のデータを含むbeanの名前を設定する。

パラメータ:
name - beanの名前

getProperty

public java.lang.String getProperty()
指定されたbeanにおいてアクセスされるプロパティ名を取得する。

戻り値:
プロパティ名

setProperty

public void setProperty(java.lang.String property)
指定されたbeanにおいてアクセスされるプロパティ名を設定する。

パラメータ:
property - プロパティ名

getScope

public java.lang.String getScope()
指定されたbeanを検索するスコープを取得する。

戻り値:
スコープ

setScope

public void setScope(java.lang.String scope)
指定されたbeanを検索するスコープを設定する。

パラメータ:
scope - スコープ

getValue

public java.lang.String getValue()
フォーマット対象の値を取得する。

戻り値:
フォーマット対象の値

setValue

public void setValue(java.lang.String value)
フォーマット対象の値を設定する。

パラメータ:
value - フォーマット対象の値

getReplaceSpToNbsp

public boolean getReplaceSpToNbsp()

replaceSpToNbspget メソッド

戻り値:
replaceSpToNbsp 半角スペースから &nbsp; 変換フラグ

setReplaceSpToNbsp

public void setReplaceSpToNbsp(boolean replaceSpToNbsp)

replaceSpToNbspset メソッド

パラメータ:
replaceSpToNbsp - 半角スペースから &nbsp; 変換フラグ

doStartTag

public int doStartTag()
               throws javax.servlet.jsp.JspException
タグ評価開始時に呼ばれるメソッド。

定義:
インタフェース javax.servlet.jsp.tagext.Tag 内の doStartTag
オーバーライド:
クラス javax.servlet.jsp.tagext.TagSupport 内の doStartTag
戻り値:
処理制御指示
例外:
javax.servlet.jsp.JspException - タグ評価時にエラー

release

public void release()
すべてのアロケートされた資源を解放する

定義:
インタフェース javax.servlet.jsp.tagext.Tag 内の release
オーバーライド:
クラス javax.servlet.jsp.tagext.TagSupport 内の release

doFormat

protected abstract java.lang.String doFormat(java.lang.String s)
文字列のフォーマットを行う抽象メソッド。 サブクラスでオーバーライドする。

パラメータ:
s - フォーマット対象文字列
戻り値:
フォーマットされた文字列