0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

📘 Vol.8.6:【Struts2】画面部品の共通化! s:include / s:component 徹底解説 〜JSPヘッダー/フッターの再利用でメンテ効率UP〜

Last updated at Posted at 2025-05-21

✅ 本記事は、Struts2でJSPを書く際に頻出するタグの基本を網羅する

📘 「Vol.8.0〜8.7:Struts2 タグライブラリ入門編(基本操作・最低限の知識)」 シリーズの一部です。


🔰 はじめに

Struts2でJSPを使って画面を開発していると、同じHTML構造を何度もコピペしていませんか?

  • 画面ごとに <header> を手動で書く
  • <footer><nav> のリンクを複製して保守ミス…

こういったJSPの共通化・再利用に役立つのが、Struts2のタグライブラリに含まれる
<s:include><s:component> です。

この記事では、それぞれの違いや使い方、実務での応用方法を分かりやすく解説します!


📌 s:include とは? ~外部JSPファイルの読み込み~

✅ 基本構文

<s:include value="/view/common/header.jsp" />

JSP内に、指定した外部JSPファイルをそのまま差し込むイメージです。
HTMLの <iframe> とは違い、ファイル内容が直接展開される形です。

✅ パラメータを渡す場合(<s:param>)

<s:include value="/view/common/userInfo.jsp">
  <s:param name="username" value="%{#session.username}" />
</s:include>

読み込まれたJSP側で ${username} のように使用できます。


📌 s:component とは? ~再利用部品としての読み込み~

✅ 基本構文

<s:component template="/view/common/card.jsp">
  <s:param name="title" value="'お知らせ'" />
  <s:param name="content" value="'メンテナンスのお知らせがあります。'" />
</s:component>

テンプレートJSPにパラメータを渡して、汎用的な表示部品を使い回せます。
テンプレート側(例:card.jsp)では以下のように受け取ります:

<div class="card">
  <h2><s:property value="parameters.title" /></h2>
  <p><s:property value="parameters.content" /></p>
</div>

🔀 使い分けのコツ

用途 おすすめタグ
静的な共通パーツ(ヘッダー、フッター) <s:include>
可変な部品(汎用メッセージカード、通知ブロック) <s:component>

💡 実務応用例:ヘッダーとフッターを共通化してみよう

🔧 ファイル構成例

/view/common/header.jsp
/view/common/footer.jsp
/view/user/userPortal.jsp

✅ userPortal.jsp に部品を読み込む

<s:include value="/view/common/header.jsp" />

<!-- メイン画面内容 -->

<s:include value="/view/common/footer.jsp" />

🚨 よくあるエラーと対策

エラー内容 原因と対策
パスが通らない value 属性はアプリルートからの相対パスで書く
パラメータが null value="%{...}"%{} を忘れている or nameの誤記

📘まとめ

  • <s:include> は「そのまま挿入」=静的な部品向き

  • <s:component> は「テンプレートとして再利用」=パラメータを渡す部品向き

  • JSPの共通パーツを部品化すると保守性と再利用性が大幅アップ


▶ 次回予告

📘 Vol.8.7:【Struts2】バリデーションUIの味方! s:fielderror 系タグでエラー表示を制御する



📚 関連記事(Vol.8シリーズ)


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?