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:【Struts2】JSPで使う「<s:」タグ徹底解説!〜初心者が感動する便利機能まとめ〜

Last updated at Posted at 2025-05-20

はじめに

Struts2を使ったWebアプリケーション開発において、JSPで使用するタグライブラリ(<s:~>タグ)はとても強力です。しかし、初心者にとっては「なんでJSPにJavaっぽいタグがあるの?」と戸惑うポイントの一つ。

今回は、Struts2のJSPタグライブラリの中でも、特によく使うタグを厳選して分かりやすく解説します!

目次

  1. <s:form>:Struts2のフォーム

  2. <s:hidden>:隠しフィールドの指定

  3. <s:textarea>:テキストエリアの表示

  4. <s:actionerror>:アクションエラーの表示

  5. <s:submit>:送信ボタン

  6. <s:iterator>:リストの繰り返し処理

  7. JavaBeanのプロパティへのアクセス

  8. セッション情報の取得と表示

  9. アクションURLの生成(<s:url> + <s:param> + <s:a>

  10. アクション呼び出しと結果の変数化(<s:action>

  11. まとめ


1. <s:form>:Struts2のフォーム

<s:form action="InsertThread" method="post">
    <s:textfield name="thread.thread_title" />
    <s:submit value="作成" />
</s:form>

Struts2の<s:form>タグは、サーバー側のアクションクラスと直接紐づくフォームを作成します。
action属性でアクションクラスを指定し、method="post"でPOST送信されます。


2. :隠しフィールドの指定

<s:hidden name="bulletinboard_id" value="%{bulletinboard_id}" />

サーバーに値を渡したいけど、画面には表示したくない!
そんな時に使えるのが<s:hidden>タグです。
例えば「掲示板ID」などの情報を次画面に渡すのに便利です。


3. :テキストエリアの表示

<s:textarea name="post_content" cols="60" rows="5" />

投稿フォームなどで、複数行の文字入力を受け付けるために使います。


4. <s:actionerror>:アクションエラーの表示

<s:actionerror />

サーバー側でバリデーションに失敗したときに、エラーメッセージを表示してくれます。
とても手軽にユーザーへのフィードバックができます。


5. <s:submit>:送信ボタン

<s:submit value="送信" />

これだけで送信ボタンが作れます。ボタンに表示されるラベルはvalue属性で指定。


6. <s:iterator>:リストの繰り返し処理

<s:iterator value="userList">
    <tr>
        <td><s:property value="user_id" /></td>
        <td><s:property value="user_name" /></td>
    </tr>
</s:iterator>

リスト形式のデータ(例えば、ユーザー一覧)をループで表示したいときに便利。
中で<s:property>を使って各プロパティにアクセスします


7. JavaBeanのプロパティへのアクセス

<s:textfield name="bulletinboard.bulletinboard_id" />

このように書くと、bulletinboardというオブジェクトのbulletinboard_idプロパティにアクセスできます。
Struts2では、フォームの各項目とアクションのプロパティが自動でバインドされるのが強みです。


8. セッション情報の取得と表示

<s:property value="#session.loggedInUser.user_name" />

#sessionでセッションスコープにアクセス可能!
ログインユーザーの情報をセッションから直接取得して画面に表示できます。


9. アクションURLの生成とパラメータ追加

<s:url var="createThreadUrl" action="MoveCreateThread">
    <s:param name="bulletinboard_id" value="%{bulletinboard_id}" />
</s:url>
<a href="<s:property value="#createThreadUrl" />">スレッド作成</a>
  • :Struts2のアクションに対応するURLを生成

  • :クエリパラメータを追加

  • で生成したURLをhrefに埋め込んでリンク化

同様に「編集」「削除」などのアクション付きリンクも作れます:

<s:url var="editUrl" action="EditUser">
    <s:param name="id" value="%{user_id}" />
</s:url>
<s:a href="%{editUrl}">編集</s:a>

10. アクション呼び出しと結果の変数化(非推奨だが便利)

<s:action name="getBulletinboards" var="bulletinboardsAction" />

JSPからアクションを直接呼び出して、結果を変数に格納できます。
ただし、処理の分離やテスト性の観点からは非推奨とされることもあります。


11. おまけ:HTMLでの直接リンクも使える

<a href="<%=request.getContextPath()%>/goToManagementMenu.action">管理メニューに戻る</a>

Struts2に限らず、通常のHTMLリンクでアクションに遷移させることも可能です。
ただし、JSP内でロジックを書きすぎないように注意!


まとめ

Struts2のタグライブラリは、アクションとの連携、バリデーションエラーの表示、リストの繰り返し、URL生成など、Webアプリケーションで必要な処理を最小限の記述で実現できる優れものです。

特に初心者にとっては「こんなことまでできるの!?」と感動するポイントがたくさん。
ぜひ、自分のプロジェクトに活用してみてください!


おすすめ関連記事

  • 【Struts2入門】アクションクラスの基本とstruts.xmlの書き方

  • 【Struts2】セッション管理とユーザー情報の活用法

  • 【Struts2】エラー処理とバリデーションの実装方

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?