概要

外部JSPを呼び出してインクルードします。機能的には<s:include>と同等です。

<r:set-local>を使用して、呼び出し先JSPへパラメータを渡すことができます。 このタグはローカル変数スコープタグです。 従って、引数として指定したローカル変数は<r:merge-component>の内側だけで(→すなわち、呼び出し先のJSPで)有効です。

タグの属性

  • src: 呼び出す外部JSPのパス。<s:include>のvalueと同じです。

タグのボディの扱い

ボディ部をJSPとして評価した結果の文字列を出力バッファの先頭に出力します。(<s:include>と同じ振る舞い)

※通常、<r:merge-component>の内側には<r:set-local>だけを記述します。従ってこの振る舞いが問題になることはありません。

サンプルコード

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:set-local var="val" value="1" />
  6. <r:merge-component src="./sqrt.jsp">
  7. <r:set-local var="val" value="2" />
  8. </r:merge-component>
  9. (val) = <s:property value="#val" />
  10. </r:block>

sqrt.jsp

  1. <%@ page pageEncoding="UTF-8"%>
  2. <%@ taglib uri="/struts-tags" prefix="s"%>
  3. <%@ taglib uri="/r42fw-tags" prefix="r"%>
  4. (sqrt) = <s:property value="#val * #val" />

実行結果

(sqrt) = 4

    (val) = 1