| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
編集の要約なし
==[[Struts2 カスタムタグ 文法]]=={{include_html [[import_keyword_html]], "!struts2"}}
カスタムタグは、動的なデータを表示するように設計されています。"postalCode"プロパティを表示するinput フィールドを生成するには、"postalCode"を textfield タグに渡します。
<s:textfield label="%{getText("postalCode.label")}" name="postalCode"/>
[[http://struts.apache.org/2.x/docs/ognl.html OGNL 式言語]] | は、メソッドを呼び出し、プロパティを評価します。
getTextメソッドは、ActionSupportにより提供されています。ActionSupportは、ほとんどのアクションの基底クラスです。
Actionは、スタックに乗っているため、getTextを含む、どのメソッドも式から呼び出すことができます。
====文字列ではない属性属性====
HTTPプロトコルは、テキストベースですが、いくつかのタグは、文字列ではない属性型を持ちます。例えば、boolやintなど。[[HTTP]]プロトコルは、テキストベースですが、いくつかのタグは、文字列ではない属性型を持ちます。例えば、boolやintなど。
文字列ではない属性を利用するため、フレームワークが全ての文字列ではない属性を式として評価します。
以下の例では、エスケープ記法を使用する必要はありません。(もし付加したとしても、フレームワークが取り除きます)
<s:textfield label="%{getText("state.label")}" name="state" value="CA"/>
もし、textfield が、"CA"という値を渡されたら、フレームワークは、getCa プロパティを探す。おそらくそれは、意図するところではない。文字列を渡すことを意図しているはずだ。式言語においては、定数は、引用符に囲んで表す。プロパティを探す。おそらくそれは、意図するところではない。文字列を渡すことを意図しているはずだ。式[[言語]]においては、定数は、引用符に囲んで表す。
'''文字列定数を渡す正しい方法'''
<s:textfield label="%{getText("state.label")}" name="state" value="%{'CA'}" />
もうひとつの方法は、value="'CA'"とする方法だ。しかし、こういった例では、式言語の記法を推奨する。とする方法だ。しかし、こういった例では、式[[言語]]の記法を推奨する。
要約すれば、タグの属性は、3つのルールにより評価される。

案内メニュー