logic:equalタグ

Struts 1のJSPで、指定した値が基準値と等しい場合だけ本文を表示するLogic Taglibの条件分岐タグ。

作成日: 2026-07-21 / 更新日: 2026-07-28

キーワード: logic:equal / Struts Logic Taglib / JSP / 条件分岐 / name / property / value / scope / JSTL

概要

<logic:equal> は、指定した値と基準値が等しい場合だけ、タグで囲んだ部分を処理する条件分岐タグです。

JSPそのものの標準タグではなく、Struts 1のLogic Taglibに含まれます。Struts 1とJSPを使った既存のJava業務システムで見かけることがあります。

基本的な使い方

最初に、JSPでLogic Taglibを利用できるようにします。

<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>

たとえば、userFormstatusACTIVE の場合だけメッセージを表示するなら、次のように書きます。

<logic:equal name="userForm" property="status" value="ACTIVE">
  <p>利用中のユーザーです。</p>
</logic:equal>

この例では、次の値を比較しています。

概念的には、次の条件に近い処理です。

"ACTIVE".equals(userForm.getStatus())

ただし、実際の値の取得や比較時の型変換はStrutsのタグ実装が行います。

主な属性

属性役割
nameページ、リクエスト、セッション、アプリケーションのいずれかから取得するBean名
propertyBeanの中で比較するプロパティ名
value比較対象となる基準値
scopeBeanを探すスコープ。省略時は各スコープから順に検索される
parameterリクエストパラメータの値を比較するときに指定する
headerHTTPヘッダーの値を比較するときに指定する
cookieCookieの値を比較するときに指定する

通常のStruts画面では、namepropertyvalueの組み合わせを読む機会が多くなります。

スコープを指定する例

同じ名前の属性が複数のスコープに存在する可能性がある場合は、scopeを明示します。

<logic:equal
  name="userForm"
  property="status"
  value="ACTIVE"
  scope="request">
  <p>利用中のユーザーです。</p>
</logic:equal>

scopeには、pagerequestsessionapplicationを指定できます。

リクエストパラメータを比較する例

<logic:equal parameter="mode" value="edit">
  <p>編集モードです。</p>
</logic:equal>

URLが ?mode=edit のようになっている場合に、タグ内が処理されます。

ただし、リクエストパラメータを使って重要な業務判断や権限制御を行うべきではありません。画面表示の切り替えと、サーバー側で保証すべき処理は分けて考えます。

等しくない場合

値が等しくない場合だけ処理したいときは、<logic:notEqual>を使います。

<logic:notEqual name="userForm" property="status" value="ACTIVE">
  <p>現在は利用できません。</p>
</logic:notEqual>

JSTLで書く場合

新しいJSPコードでは、Struts 1固有のタグよりもJSTLとELを使った次の書き方のほうが意図を読み取りやすい場合があります。

<c:if test="${userForm.status eq 'ACTIVE'}">
  <p>利用中のユーザーです。</p>
</c:if>

ただし、既存システムではプロジェクト内の記述方法を揃える必要があります。単独で置き換えるのではなく、利用しているStrutsやJSPのバージョン、タグライブラリ、テスト範囲を確認します。

コードを読むときの観点

<logic:equal>を見つけたら、次の順番で確認します。

  1. nameで指定された値を、ActionやServletのどこで設定しているか
  2. propertyの型と、実際に返る値は何か
  3. scopeが明示されているか
  4. 条件によって、どのHTMLや入力項目が表示されるか
  5. 画面表示だけでなく、業務ルールや権限制御までJSPに入り込んでいないか

JSPの条件分岐が増えると、画面の表示条件を追いにくくなります。複雑な判断はActionやサービス層で行い、JSPには表示に必要な結果を渡すほうが、責務を分けやすくなります。

参考文献

更新履歴

  • 初版作成
  • ActionFormと画面改修の調査手順へのリンクを追加

関連項目

このページを参照しているページ