ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Struts JSP タグの概要
Struts はカスタムタグライブラリを提供し、JSP 側で <% %> スクリプトレットを書かずに HTML フォームや繰り返し処理を表現できます。Struts 1 と Struts 2 でタグ体系が大きく異なるため、それぞれ把握する必要があります。
Struts 1 のタグ体系
| 接頭辞 | TLD URI | 用途 |
|---|---|---|
html | http://struts.apache.org/tags-html | HTML フォーム要素 |
bean | http://struts.apache.org/tags-bean | Bean / メッセージ表示 |
logic | http://struts.apache.org/tags-logic | 条件分岐・繰り返し |
nested | http://struts.apache.org/tags-nested | ネストプロパティ |
tiles | http://struts.apache.org/tags-tiles | Tiles レイアウト |
Struts 1 タグ使用例
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
ユーザー ID:
パスワード:
<%-- メッセージ表示 --%>
<%-- 繰り返し --%>
<%-- 条件分岐 --%>
管理者メニュー
Struts 2 のタグ体系
Struts 2 では 接頭辞に統一され、OGNL で Action のプロパティに直接アクセスできます。
<%@ taglib prefix="s" uri="/struts-tags" %>
<%-- フォーム --%>
<%-- 条件 --%>
ようこそ
<%-- 繰り返し --%>
:
<%-- URL 生成 --%>
ログアウト
<%-- 国際化 --%>
Struts 1 タグ ⇔ Struts 2 タグ対応表
| 用途 | Struts 1 | Struts 2 | JSTL/Spring MVC |
|---|---|---|---|
| フォーム | |||
| テキスト入力 | |||
| パスワード | |||
| セレクト | |||
| サブミット | |||
| 値出力 | ${var} / | ||
| 繰り返し | |||
| 条件 (=) | |||
| エラー表示 |
TLD (Tag Library Descriptor) とは
カスタムタグの定義ファイルです。JAR 内の META-INF/*.tld に同梱され、JSP コンテナがタグ名とハンドラクラスを対応付けるのに使います:
1.3
html
http://struts.apache.org/tags-html
text
org.apache.struts.taglib.html.TextTag
JSP
property
true
よくあるエラー
1. Unable to find taglib uri
org.apache.jasper.JasperException: /WEB-INF/views/login.jsp(2,1)
PWC6188: The absolute uri: http://struts.apache.org/tags-html cannot be
resolved in either web.xml or the jar files deployed with this application
原因と対処:
- struts-taglib.jar (Struts 1) または struts2-core.jar (Struts 2) が
WEB-INF/lib/にない → 追加 - uri の綴り間違い → 公式の URI に合わせる
- JAR バージョン違い (1.3 系で 1.2 系の uri 等) → JAR と uri を一致させる
2. property を見つけられない (No getter method for property)
javax.servlet.jsp.JspException: No getter method for property userId
of bean org.apache.struts.taglib.html.BEAN
ActionForm に getUserId() / setUserId(String) がないため。Bean 規約に従って getter/setter を追加。
Spring MVC への移行例
Struts 1 のフォームを Spring MVC へ書き換えるパターン:
<%-- Struts 1 --%>
<%-- Spring MVC --%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
JSTL のみで Struts タグを置き換える
Struts タグを使わず JSTL + 標準 HTML だけで書く方が、移植性が高くお勧めです:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
FAQ
Q: Struts 1 と Struts 2 のタグを同じ JSP に混在できる?
A: 技術的には可能ですが避けるべき。Tag handler の競合や OGNL/EL の混在で問題が起きやすい。移行するならページ単位で書き換える。
Q: TLD ファイルは web.xml に書く必要がある?
A: Servlet 2.4+ では JAR の META-INF に同梱した TLD が自動検出されるため不要。古いコードに残っているだけ。
Q: カスタムタグを自作したい
A: JSP 2.0 以降は .tag ファイル (WEB-INF/tags/ に配置) で簡単に作成可能。Java クラス + TLD を書く必要はない。
関連項目
- JSTL — JSP 標準タグライブラリ
- EL (Expression Language) — JSP/Servlet 標準の式言語
- Spring MVC form タグ — 移行先の標準
- Thymeleaf — タグライブラリ不要の HTML テンプレート
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?