'''動的 input field の生成'''
<<s:textfield name="postalCode"/>>
もし、"postalCode"プロパティが、value stack にある場合、input フィールドには、その値がセットされます。フィールドがフレームワークにサブミットされたとき、コントロールの値は、"postalCode"プロパティにセットされます。
'''ラベルのセットに式を使用する'''
<<s:textfield label="%{getText("postalCode.label")}" name="postalCode"/>>
[[http://struts.apache.org/2.x/docs/ognl.html OGNL 式言語]]は、メソッドを呼び出し、プロパティを評価します。
getTextメソッドは、ActionSupportにより提供されています。ActionSupportは、ほとんどのアクションの基底クラスです。
Actionは、スタックに乗っているため、getTextを含む、どのメソッドも式から呼び出すことができます。
'''booleanを評価'''
<<s:select label="%{getText("state.label")}" name="state" multiple="true"/>>
multiple 属性は、booleanプロパティにマップされるため、フレームワークは値をStringと解釈しません。
'''boolean を評価(詳細)'''
<<s:select label="%{getText("state.label")}" name="state" multiple="%{true}"/>>
'''boolean を評価(プロパティの使用)'''
<<s:select label="%{getText("state.label")}" name="state" multiple="allowMultiple"/>>
'''boolean を評価(プロパティの使用 詳細)'''
<<s:select label="%{getText("state.label")}" name="state" multiple="%{allowMultiple}"/>>
===value は オブジェクト!===
'''きっと動作しない!'''
<<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'"とする方法だ。しかし、こういった例では、式言語の記法を推奨する。