本記事は、Struts2でJSPを書く際に頻出するタグの基本を網羅する
📘「Vol.8.0〜8.7:Struts2 タグライブラリ入門編(基本操作・最低限の知識)」 シリーズの一部です。
今回はStruts2のJSPタグライブラリの中でも、特に動的処理や安全性を高めるために便利なタグ、「<s:action>
」と「<s:token>
」について詳しく解説します。
🔹 1. <s:action>
タグとは?
<s:action>
はJSP内からStruts2のアクションを呼び出し、その結果をJSPで利用できるタグです。
普通はコントローラのアクションがビューにデータを渡しますが、JSPから動的にアクションを呼ぶことで、より柔軟な表示制御が可能になります。
使い方の例
<s:action name="getBulletinboards" var="bulletinboardsAction" />
<s:iterator value="#bulletinboardsAction.bulletinboards">
<p>掲示板名: <s:property value="name" /></p>
</s:iterator>
-
name属性に呼び出したいアクション名を指定
-
var属性で結果を格納する変数名を指定
-
変数名は#をつけてプロパティアクセスに利用
🔹 2. タグとは?
<s:token>
はフォームの二重送信防止に使うトークンを生成し、フォームに埋め込むタグです。
Struts2のTokenInterceptor
と連携して、ユーザーの二重送信やブラウザの戻るボタンによる二重処理を防ぎます。
フォームでの使い方
<s:form action="InsertThread" method="post">
<s:token />
<div>
スレッドタイトル:
<s:textfield name="thread.thread_title" />
<s:fielderror fieldName="thread.thread_title" />
</div>
<s:submit value="作成" />
</s:form>
TokenInterceptor の設定例(struts.xml)
<action name="InsertThread" class="com.example.action.InsertThreadAction">
<interceptor-ref name="token" />
<interceptor-ref name="defaultStack" />
<result name="success">/success.jsp</result>
<result name="invalid.token">/error/duplicateSubmit.jsp</result>
</action>
-
トークン不一致時はinvalid.token結果へ遷移
-
ここで重複送信を検知して処理を中断
🔹 3. まとめ
タグ | 目的 |
---|---|
<s:action> |
JSP内からアクション呼び出し、動的に結果を取得 |
<s:token> |
フォームの二重送信を防止するトークンを生成 |
これらを活用することで、Struts2のJSP画面をより安全かつ柔軟に設計可能です。
📚 関連記事(Vol.8シリーズ)
-
📘 Vol.8.1:【Struts2】タグライブラリの全体像と種類を把握する 〜JSP開発で使えるタグ一覧と役割まとめ〜
-
📘 Vol.8.2:【Struts2】JSPタグライブラリ実践テンプレート集 〜現場で即使える!フォーム・URL・セッション活用まとめ〜
-
📘 Vol.8.5:【Struts2】条件分岐タグ(s:if / s:else)徹底解説! 〜表示制御と実務応用の決定版〜
-
📘 Vol.8.6:【Struts2】画面部品の共通化! s:include / s:component 徹底解説 〜JSPヘッダー/フッターの再利用でメンテ効率UP〜
最後に
今回の解説がStruts2初心者の皆さんの助けになれば幸いです!
次回はより応用的なタグや実践例を取り上げていきます。お楽しみに!
この記事はjuehara-cryptoによる連載シリーズの一部です。