JSP アクション タグ

⚡ スマートサマリー

JSPアクションタグはXML構文を使用してサーブレットエンジンの動作を制御し、開発者がファイルを含めたり、リクエストを転送したり、操作したりできるようにします。 JavaBeansを使用して、リクエスト処理中に動的なコンテンツを埋め込む。

  • 🏷️ 標準セット: 11個の標準アクションタグは、インクルード、フォワード、ビーンズ、プラグイン、およびXML出力を処理します。
  • 📜 XML構文: アクションタグは厳密なXML形式に従い、リクエストごとに再評価されます。
  • 🔗 Bean統合: jsp:useBean、jsp:setProperty、およびjsp:getPropertyは、 Java豆のライフサイクルと特性。
  • ページフロー: jsp:include はリソースをマージします。jsp:forward はリクエスト処理を別のページに転送します。
  • 🧪 動的XML: jsp:body、jsp:attribute、jsp:text、およびjsp:outputは、XML構造を動的に生成します。
  • 🤖 AIの近代化: AIアシスタントは、従来のJSPアクションコードを最新のフレームワークにリファクタリングするのに役立ちます。

JSP アクション タグ

JSPアクションタグとは何ですか?

JSPアクションタグは、XML構文構造を使用してサーブレットエンジンの動作を制御します。開発者はファイルを動的に挿入したり、再利用したりできます。 JavaBeanコンポーネントを使用したり、ユーザーを別のページに転送したり、includeやforwardなどのJSPアクションタグを使用して同様の実行時操作を実行したりできます。ディレクティブとは異なり、アクションタグはページにアクセスするたびに再評価されるため、リクエスト処理中の動的な動作に最適です。

構文:

<jsp:action_name attribute="value" />

このJSP標準アクションタグに関するチュートリアルでは、各アクションタグの仕組み、その機能、そして実際のJSPファイルでの適用方法について学びます。

JSPでよく使われるアクションタグの一覧

JSP には 11 種類の標準アクション タグがあり、その完全なリストは次のとおりです。

アクションタグ名 構文 詳細説明
jsp:useBean JSP ページで Bean を呼び出して使用するために使用されます。
jsp:インクルード <jsp:include page=”page URL” flush=”true/false” /> リクエスト処理中に別の JSP ファイルを現在のファイルに含めます。
jsp:setProperty Bean のプロパティを設定します。
jsp:getProperty Bean のプロパティを取得し、出力用の文字列に変換します。
jsp:転送 リクエストを別の JSP または静的ページに転送します。
jsp:プラグイン 紹介します Java アプレットや Bean などのコンポーネントを JSP に組み込み、タグを自動的に生成します。
jsp:ボディ リクエスト処理中に動的に生成される XML 要素を定義します。
jsp:テキスト テンプレートテキスト テキストと EL 式のみを含むテンプレート テキストを JSP ページに挿入するために使用されます。
jsp:パラメータ jsp:plugin アクション内でパラメータを渡して、追加データを追加します。
jsp:属性 動的に生成される XML 属性を定義します。
jsp:出力 出力で使用する XML または DOCTYPE 宣言を指定します。

これでJSPアクションタグの全リストが揃ったので、構文と動作例を交えながら、それぞれのタグについて一つずつ詳しく見ていきましょう。

jsp:useBean アクションタグ

  • このアクション名は、 JavaJSPページ内のBean。
  • このタグを使用すると、Beanを簡単に呼び出し、サーバーサイドコンポーネントを再利用できます。

jsp:useBean の構文:

<jsp:useBean id="" class="" />

ここで、id はこの Bean の識別子を指定し、class は Bean クラスの完全なパスです。

例:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action JSP1</title>
</head>
<body>
<jsp:useBean id="name" class="demotest.DemoClass">
</body>
</html>

コードの説明:

Code ライン10: 上記のコードでは、Beanの「Bean ID」と「クラスパス」を使用します。

jsp:include アクションタグ

  • jsp:include は、リクエスト処理中に JSP ファイルを別のファイルに挿入するために使用されます。 説明書.
  • これはリクエスト処理フェーズ中に追加されるため、ページがリクエストされるたびに、含まれているコンテンツが評価されます。

jsp:include の構文:

<jsp:include page="page URL" flush="true/false">

例:

Action_jsp2 内 (Code 10行目)では、date.jspファイルを含めています。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Date Guru JSP</title>
</head>
<body>
<jsp:include page="date.jsp" flush="true" />
</body>
</html>

日付.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<p>
Today's date: <%= new java.util.Date().toLocaleString()%>
</p>
</body>
</html>

コードの説明:

アクション_jsp2.jsp

Code ライン10: 最初のファイルでは、action_jsp2.jspにdate.jspファイルをインクルードしています。

日付.jsp:

Code ライン11: date.jsp ファイルの11行目で、今日の日付を表示しています。

コードを実行すると、以下の出力が得られます。

jsp:インクルード

出力:

  • 日付ファイルがメインのJSPページに組み込まれている場合、今日の日付と時刻が表示されます。

jsp:setProperty アクションタグ

  • JSPにおけるこの標準アクションは、Beanのプロパティを設定するために使用されます。
  • プロパティを設定する前に、Beanを定義する必要があります。

構文:

<jsp:setProperty name="" property="" >

ここで、name はプロパティを設定する Bean を定義し、property は設定したいプロパティです。value と param 属性も設定できます。value は必須ではありませんが、プロパティに割り当てられる値を定義します。param は、値を取得するために使用するリクエスト パラメータの名前です。setProperty の例は、getProperty とともに以下で説明します。

jsp:getProperty アクションタグ

  • このアクションは、ビーンのプロパティを取得するために使用されます。
  • プロパティを文字列に変換し、最終的に出力に挿入します。

構文:

<jsp:getProperty name="" property="" >

ここで、name はプロパティを取得する対象となる Bean の名前であり、その Bean は定義する必要があります。property 属性は、取得する Bean プロパティの名前です。

setProperty と getProperty の例:

テストビーン.java:

package demotest;

import java.io.Serializable;

public class TestBean implements Serializable{
	
	private String msg = "null";
	
	public String getMsg() {
		return msg;
	}
	
	public void setMsg(String msg) {
		this.msg = msg;
	}
}

アクション_jsp3.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action 3</title>
</head>
<body>
<jsp:useBean id="GuruTest" class="demotest.TestBean" />
<jsp:setProperty name="GuruTest" property="msg" value="GuruTutorial" />
<jsp:getProperty name="GuruTest" property="msg" />
</body>
</html>

コードの説明:

テストビーン.java:

Code ライン5TestBeanはSerializableクラスを実装しています。これは、コード内にゲッターとセッターを持つBeanクラスです。

Code ライン7ここでは、プライベート文字列変数 msg を「null」として扱います。

Code 9〜14行目ここでは、変数「msg」のゲッターとセッターを使用しています。

アクション_jsp3.jsp

Code ライン10: ここでは「useBean」タグを使用しており、このJSPクラスで使用する必要のあるBean(TestBean)を指定しています。

Code ライン11: ここでは、Bean TestBean のプロパティ msg の値を次のように設定しています。Guruチュートリアル"。

Code ライン12: ここでは、getProperty を使用して、Bean TestBean のプロパティ msg の値を取得しています (Guruチュートリアル)の出力に表示されます。

上記のコードを実行すると、次の出力が得られます。

jsp:getProperty

出力:

この例では、TestBean を使用して、setProperty を使用してプロパティ「msg」を設定し、getProperty を使用してプロパティの値を取得します。Guruチュートリアル"。

jsp:forward アクションタグ

jsp:forwardアクションタグは、リクエストを別のJSPページまたは任意の静的ページに転送するために使用されます。

ここで、リクエストはパラメータなしでもパラメータ付きでも転送できます。

構文:

<jsp:forward page="value">

ここで、値はリクエストを転送する必要がある場所を表します。

例:

アクション_jsp41.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action JSP1</title>
</head>
<body>
<jsp:forward page="jsp_action_42.jsp" />
</body>
</html>

Jsp_action_42.jsp

Guru Action JSP2</title>
</head>
<body>
<a>This is after forward page</a>
</body>
</html>

コードの説明:

アクション_jsp41.jsp

Code ライン10: ここでは、forward JSPアクションを使用して、属性で指定されたページ、つまりjsp_action_42.jspにリクエストを転送します。

Jsp_action_42.jsp

Code ライン10: action_jsp41.jsp を呼び出すと、リクエストはこのページに転送され、「これは転送後のページです」という出力が得られます。

上記のコードを実行すると、次の出力が得られます。

jsp:転送

出力:

action_jsp41.jsp を呼び出しますが、リクエストは jsp_action_42.jsp に転送され、そのページから「これは転送後のページです」という出力が得られます。

jsp:plugin アクションタグ

  • 紹介するために使われます Java コンポーネントをJSPに組み込むと、 Java コンポーネントは、アプレットまたはビーンのどちらかになります。
  • ブラウザを検出して追加しますまたはファイルにタグを挿入します。

構文:

<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
  • ここで、型はオブジェクトまたはビーンのいずれかを指定します。
  • Code アプレットまたはビーンのクラス名を指定します。
  • Codeベースにはベースが含まれています URL クラスのファイルが含まれている。

jsp:param アクションタグ

  • これは、上記で説明したプラグインオブジェクトの子オブジェクトです。
  • 追加パラメータを提供するには、XNUMX つ以上のアクションを含める必要があります。

構文:

<jsp:params>
<jsp:param name="val" value="val"/ >
</jsp:params>

プラグインとパラメータの例:

アクション_jsp5.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action guru jsp5</title>
</head>
<body>
<jsp:plugin type="bean" code="Student.class" codebase="demotest.Student">
  <jsp:params>
     <jsp:param name="id" value="5" />
     <jsp:param name="name" value="guru" />
  </jsp:params>
</jsp:plugin>
</body>
</html>

学生.java

package demotest; 

import java.io.Serializable;

public class Student implements Serializable {
	
	public String getName () { 
		return name; 
	}
	public void setName (String name) {
		this.name = name;
	}
	public int getId() { 
		return id; 
	} 
	public void setId (int id) { 
		this.id = id; 
	} 
	private String name = "null"; 
	private int id = 0;
	
}

コードの説明:

アクション_jsp5.jsp

Code ライン10: ここでは、jsp:plugin オブジェクトを使用して、3 つの属性を取得しています。

  • 型 ― この場合は豆です。
  • Code – ファイル名。
  • Codebase – パッケージ名を含むパス。

Code 11〜14行目: ここでは、jsp:params オブジェクトを取り上げ、その下に name と value という属性を持つ子 param オブジェクトがあり、これらの属性に id と name の値を設定します。

学生.java

Code 7-17: idとnameという変数には、ゲッターとセッターを使用しています。

Code 19-20: 変数idとnameを初期化します。

ここでは、paramに設定された値がStudent Beanで使用される場合の出力について説明します。ただし、この場合はparamの値を設定および取得するだけで、どこにも出力しないため、出力は発生しません。

jsp:body アクションタグ

  • このタグは、XMLを動的に定義するために使用されます。 要素 コンパイル時ではなく、リクエスト時に生成することができます。
  • これは、要素本体として動的に生成されるXMLを定義します。

構文:

<jsp:body></jsp:body>

ここでは、これらのタグの中にXML本文タグを記述します。

jsp:attribute Action タグ

  • このタグは、XMLを動的に定義するために使用され、要素はコンパイル時ではなくリクエスト時に生成されます。
  • これは、動的に生成されるXMLの属性を定義します。

構文:

<jsp:attribute></jsp:attribute>

ここでは、XMLの属性タグを記述します。

本体と属性の例:

アクション_jsp6.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action Guru JSP6</title>
</head>
<body>
<jsp:element name="GuruXMLElement">
<jsp:attribute name="GuruXMLattribute">
Value
</jsp:attribute>
<jsp:body>Guru XML</jsp:body>
</jsp:element>
</body>
</html>

コードの説明:

Code ライン10: ここでは、動的に生成される要素を定義しています。 XMLそしてその名前は GuruXML要素。

Code 11〜13行目: ここでは、動的に生成されるXMLのXML属性となる属性を定義しています。

Code ライン14: ここでは、動的に生成されるXML本文を書き込むボディアクションがあります。

上記のコードを実行すると、次の出力が得られます。

jsp:属性

出力:

ここでは、生成されたXMLのbodyタグからの出力を取得します。

jsp:text アクションタグ

  • これは、テンプレートテキストをJSPページに挿入するために使用されます。
  • その本体には他の要素は含まれず、テキストと EL 式のみが含まれます。

構文:

<jsp:text>template text</jsp:text>

ここでいうテンプレートテキストとは、テンプレートテキスト(JSPに印刷する必要のある任意の汎用テキスト)または任意のテキストのみを指します。 EL式.

例:

アクション_jsp7.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action JSP7</title>
</head>
<body>
<jsp:text>Guru Template Text</jsp:text>
</body>
</html>

コードの説明:

Code ライン10: ここでは、テキストオブジェクトを使用してテンプレートテキストを印刷します。

上記のコードを実行すると、次の出力が得られます。

jsp:テキスト

出力:

私たちは Guru テンプレートテキストは、テキストアクションオブジェクト内に配置されます。

jsp:output アクションタグ

  • これは、XML宣言またはJSPのDOCTYPE宣言を指定します。
  • XML宣言とDOCTYPEは出力によって宣言されます。

構文:

<jsp:output doctype-root-element="" doctype-system="">

ここで、doctype-root-element は DOCTYPE 内の XML ドキュメントのルート要素を示します。doctype-system は出力で生成される DOCTYPE を示し、システムリテラルを提供します。

例:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action Guru JSP8</title>
</head>
<body>
<jsp:output doctype-root-element="html PUBLIC" doctype-system="http://www.w3.org/TR/html4/loose.dtd"/>
</body>
</html>

コードの説明:

Code ライン10: ここでは出力アクションオブジェクトを使用してDOCTYPEを生成しており、内部的には次のような形式で生成されます。

これは内部的に生成されるため、目に見える出力はありません。

よくあるご質問

JSPアクションタグは、リクエスト処理中のサーブレットエンジンの動作を制御するXMLスタイルの要素です。開発者は、ファイルを含めたり、リクエストを転送したり、 JavaJSPページ内でBeans、埋め込みアプレット、および動的にXML出力を生成する。

ディレクティブはページ翻訳時に一度だけ処理され、ページ全体の構造に影響を与えます。アクションタグはリクエストごとに再評価されるため、コンテンツの挿入、リクエストの転送、操作などの動的な動作に適しています。 Java実行時にBeansが渡される。

ヘッダーやフッターなど、別のページのコンテンツを現在のレスポンスにマージする必要がある場合は、jsp:include を使用します。制御を完全に別のリソースに渡して、現在のページがそれ以上の出力を生成しないようにするには、jsp:forward を使用します。

jsp:useBean はインスタンス化または検索します Java指定されたスコープ内のBean。jsp:setPropertyはBeanプロパティに値を割り当て、jsp:getPropertyはプロパティ値を読み取り、レスポンスに文字列として書き込むことで、プレゼンテーションとBeanロジックを明確に分離します。

jsp:body と jsp:attribute は、動的な XML 要素の本体と属性を定義します。jsp:text はリテラルなテンプレートテキストと EL 式を書き込み、jsp:output は JSP が応答をレンダリングする際に生成される XML 宣言または DOCTYPE を制御します。

AIは、モデルAPIへのREST呼び出し、組み込みチャットアシスタント、JSPページに表示されるレコメンデーションウィジェットなどを通じて、JSPおよびJEEアプリケーションに統合されます。また、AIは、開発中に定型的なJSPコードの生成、アクションタグの使用提案、Beanワイヤリングの検証にも役立ちます。

はい。AI支援ツールは、従来のJSPコードを分析し、アクションタグのパターンを特定して、Spring MVC、Thymeleaf、RESTなどの最新フレームワークとシングルページアプリケーションへのリファクタリングを提案します。また、移行テスト、依存関係レポート、段階的なリファクタリング計画も生成します。