概要

<r:merge-component>で呼び出したJSPが呼び出し元のJSPへ値を返却する時に使用します。

具体的には、<r:set-return>を囲っている直近の<r:merge-component>の、さらに一つ外側のローカル変数スコープタグをスコープとしたローカル変数をセットします。 もしそのようなローカル変数スコープタグが存在しない(→直近の<r:merge-component>をさらに囲っているローカル変数スコープタグが存在しない)場合、例外をスローします。

詳しくはサンプルコードを参照してください。

タグの属性

  • var: ローカル変数の名前を指定します。<s:set>のvarと同じです。
  • value: ローカル変数の値を指定します。<s:set>のvalueと同じです。

タグのボディの扱い

<s:set>と同じです。 value属性が未指定の場合、タグのボディをJSPとして評価した結果の文字列をvalueとして扱います。

サンプルコード

main.jsp

  1. <%@ page pageEncoding="UTF-8"%>
  2. <%@ taglib uri="/struts-tags" prefix="s"%>
  3. <%@ taglib uri="/r42fw-tags" prefix="r"%>
  4. <r:block>
  5. <r:merge-component src="./sqrt.jsp">
  6. <r:set-local var="val" value="2" />
  7. </r:merge-component>
  8. (retVal in block) = <s:propety value="#retVal" />
  9. </r:block>
  10. (retVal in root) = <s:propety value="(#retVal == null ? 'null' : #retVal)" />

sub.jsp

  1. <%@ page pageEncoding="UTF-8"%>
  2. <%@ taglib uri="/struts-tags" prefix="s"%>
  3. <%@ taglib uri="/r42fw-tags" prefix="r"%>
  4. <r:set-return var="retVal" value="#val * #val" />

実行結果

    (retVal in block) = 4

(retVal in root) = null