概要

ローカル変数を宣言します。 このタグで宣言した変数のスコープは、直近のローカル変数のスコープを形成するタグ(ローカル変数スコープタグ)内側に限定されます。

このタグはローカル変数スコープタグとペアで使用する必要があります。ローカル変数スコープタグの外で使用した場合は例外をスローします。

詳しくは<r:block>を参照してください。

タグの属性

  • var: ローカル変数の名前を指定します。<s:set>のvarと同じです。
  • value: ローカル変数の値を指定します。<s:set>のvalueと同じです。
  • evalBody: value属性が指定なしの場合、ボディ部分をOGNL式とみなして評価します。var属性が指定されている場合、指定された名前のローカル線数の値としてセットします。

タグのボディの扱い

  • evalBody属性の値が無指定か、falseの場合
    • <s:set>と同じです。value属性が未指定の場合、タグのボディをJSPとして評価した結果の文字列をvalueとして扱います。
  • evalBody属性の値がtrueの場合
    • value属性が指定なしの場合、ボディ部分をOGNL式とみなして評価します。

サンプルコード

evalBodyの例

  1. <r:set-local var="map" evalBody="true">
  2. #{
  3. 'a': 1,
  4. 'b': 2,
  5. 'c': 3
  6. }
  7. </r:set-local>
  8. <%-- #map['a']の値は1 --%>
  9. <s:property vaue="#map['a']" />

実行結果

<%-- #map['a']の値は1 --%>
1