📘 Vol.8.2：【Struts2】JSPタグライブラリ実践テンプレート集   〜現場で即使える！フォーム・URL・セッション活用まとめ〜

本記事は、Struts2でJSPを書く際に頻出するタグの基本を網羅する  
**📘「Vol.8.0〜8.7：Struts2 タグライブラリ入門編（基本操作・最低限の知識）」**　シリーズの一部です。


# 🔰 はじめに

本記事は、[📘 Vol.8.1：【Struts2】タグライブラリの全体像と種類を把握する 〜JSP開発で使えるタグ一覧と役割まとめ〜」](https://qiita.com/juehara-crypto/items/9635c8746d362496aef3) で紹介した内容をもとに、**JSPで実際に使えるテンプレート集**としてまとめたものです。  
「現場でそのままコピペして使える」ことをコンセプトに、実例形式で紹介していきます！

---

## 📑 テンプレート一覧

### ✅ 1. `<s:form>` & `<s:submit>`：基本的なフォーム

```jsp
<s:form action="InsertUser" method="post">
    <s:textfield name="user.user_name" label="ユーザー名" />
    <s:password name="user.password" label="パスワード" />
    <s:submit value="登録" />
</s:form>
```

---
### ✅ 2. <s:hidden>：値の受け渡しに

```jsp
<s:form action="InsertThread" method="post">
    <s:hidden name="bulletinboard_id" value="%{bulletinboard_id}" />
    <s:textfield name="thread.thread_title" label="スレッドタイトル" />
    <s:submit value="作成" />
</s:form>
```

---
### ✅ 3. <s:property>：セッションなどの値を表示
```jsp
<p>こんにちは、<s:property value="#session.loggedInUser.user_name" /> さん</p>
```
---

### ✅ 4. `<s:url>` + `<s:param>`：アクションURLの生成
```jsp
<s:url var="createThreadUrl" action="MoveCreateThread">
    <s:param name="bulletinboard_id" value="%{bulletinboard_id}" />
</s:url>
<a href="<s:property value="#createThreadUrl" />">スレッド作成</a>
```
---

### ✅ 5. <s:iterator>：リストの繰り返し表示
```jsp
<s:iterator value="threadList">
    <div>
        <p>タイトル：<s:property value="thread_title" /></p>
        <p>ID：<s:property value="thread_id" /></p>
    </div>
</s:iterator>
```
---

### ✅ 6. <s:action>：アクション呼び出し & 結果取得
```jsp
<s:action name="getBulletinboards" var="bulletinboardsAction" />
<s:iterator value="#bulletinboardsAction.bulletinboardList">
    <p><s:property value="bulletinboard_title" /></p>
</s:iterator>
```
---

### ✅ 7. 編集・削除リンクを生成するパターン
```jsp
<!-- 編集 -->
<s:url var="editUrl" action="EditUser">
    <s:param name="id" value="%{user_id}" />
</s:url>
<s:a href="%{editUrl}">編集</s:a>

<!-- 削除 -->
<s:url var="deleteUrl" action="DeleteUser">
    <s:param name="id" value="%{user_id}" />
</s:url>
<s:a href="%{deleteUrl}">削除</s:a>
```
---

### ✅ 8. HTMLと併用：静的リンク（戻るボタン）
```jsp
<p>
    <a href="<%=request.getContextPath()%>/goToManagementMenu.action">管理メニューに戻る</a>
</p>
```

---

### 💬 おわりに
いかがでしたか？Struts2の `<s:タグ>` は、単に値を表示するだけでなく、**動的なフォーム作成・アクション遷移・セッション操作**まで多岐にわたる活用が可能です。

---


---
## 📚 関連記事（Vol.8シリーズ）

- [📘 Vol.8.0：【Struts2】OGNL入門　〜タグライブラリを支える最重要基礎技術〜](https://qiita.com/juehara-crypto/items/9b9558d46dfa5ac75224)

- [📘 Vol.8.1：【Struts2】タグライブラリの全体像と種類を把握する 〜JSP開発で使えるタグ一覧と役割まとめ〜](https://qiita.com/juehara-crypto/items/9635c8746d362496aef3)

- [📘 Vol.8.3：Struts2で作る共通レイアウトJSP 〜header/footerを使った再利用設計〜](https://qiita.com/juehara-crypto/items/96cee6c986e13bbacd8c)

- [📘 Vol.8.4：【Struts2】「s:action」「s:token」タグ徹底解説！〜アクション呼び出しと二重送信防止の最前線〜](https://qiita.com/juehara-crypto/items/6e54c3be0c35aa464724)

- [📘 Vol.8.5：【Struts2】条件分岐タグ（s:if / s:else）徹底解説！ 〜表示制御と実務応用の決定版〜](https://qiita.com/juehara-crypto/items/d9883eae6585aa62b93e)

- [📘 Vol.8.6：【Struts2】画面部品の共通化！ s:include / s:component 徹底解説 〜JSPヘッダー/フッターの再利用でメンテ効率UP〜](https://qiita.com/juehara-crypto/items/b36801f70830d2c056aa)

- [📘 Vol.8.7：【Struts2】バリデーションUIの味方！ `<s:fielderror>` / `<s:actionerror>` / `<s:actionmessage>` 徹底ガイド 〜エラーメッセージの表示とフォーム連携の基本〜](https://qiita.com/juehara-crypto/items/b5bacb915f8baea2f2ec)


---
📘 [Vol.7.4：struts.xmlの高度な設定と実践活用](https://qiita.com/juehara-crypto/items/bf03adbd840c8f4e2044)