JSP アクション タグ

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

JSP アクションは、XML 構文の構造を使用してサーブレット エンジンの動作を制御します。 include や forward などの JSP アクションを通じて、動的にファイルを挿入したり、Bean コンポーネントを再利用したり、ユーザーを別のページに転送したりできます。 ディレクティブとは異なり、アクションはページがアクセスされるたびに再評価されます。

構文:

<jsp:action_name attribute="value" />

このチュートリアルでは、JSP 標準アクションについて学習します。 JSP 標準アクション タグは、サーブレット エンジンの動作を制御するために使用されます。

JSP でよく使用されるアクション タグのリスト

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

アクションタグ名 構文 Description
jsp:useBean JSP ページで Bean を呼び出して使用するために使用されます。
jsp:インクルード リクエスト処理中に別の 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:useBean

  • このアクション名は、JSP ページで Bean を使用する場合に使用されます。
  • このタグを使用すると、Bean を簡単に呼び出すことができます。

jspの構文:UseBean:

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

ここでは、この 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>

コードの説明:

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

jsp:インクルード

  • インクルードするのと同じように、jsp ファイルを別のファイルに挿入するためにも使用されます。 説明書.
  • リクエスト処理フェーズ中に追加されます

jsp:include の構文

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

例:

Action_jsp2 (コード行 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

コード行 10: 最初のファイルでは、action_jsp2.jsp に date.jsp ファイルを含めています。

日付.jsp:

コード行 11: date.jsp のコード 11 行目に今日の日付を出力しています。

コードを実行すると、次の出力が表示されます。

jsp:インクルード

出力:

  • メインのJSPに日付ファイルが含まれているため、今日の日付と時刻が表示されます。

jsp:setProperty

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

構文:

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

ここで、name は、プロパティが設定されている Bean と設定したいプロパティを定義します。また、value と param 属性を設定することもできます。ここで value は必須ではなく、プロパティに割り当てられる値を定義します。ここで param は、値を取得できるリクエスト パラメータの名前です。setproperty の例は、getproperty で以下で示します。

jsp:getProperty

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

構文:

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

ここでは、プロパティを取得する Bean の名前と Bean を定義する必要があります。プロパティ属性は、取得する 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:

コード行 5:TestBean はシリアル化可能なクラスを実装しています。 これは、コード内にゲッター セッターを含む Bean クラスです。

コード行 7: ここではプライベート文字列変数 msg を「null」として取得しています。

コード行 9-14: ここでは変数「msg」のゲッターとセッターを使用しています。

アクション_jsp3.jsp

コード行 10: ここでは「useBean」タグを使用しています。このタグでは、この JSP クラスで使用する必要がある Bean、つまり TestBean を指定しています。

コード行 11: ここでは、Bean TestBean のプロパティ msg の値を「GuruTutorial」として設定しています。

CodeLine12: ここでは getProperty を使用して、出力にある Bean TestBean、つまり GuruTutorial のプロパティ msg の値を取得しています。

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

jsp:getProperty

出力:

この例では、TestBean を使用して、setProperty を使用してプロパティ「gurutest」を設定し、getProperty を使用して「GuruTutorial」としてプロパティの値を取得しようとしています。

jsp:転送

これは、リクエストを別の 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

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

Jsp_action_42.jsp

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

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

jsp:転送

出力:

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

jsp:プラグイン

  • 紹介するために使われます Java コンポーネントを jsp に変換します。つまり、Java コンポーネントはアプレットまたは Bean のいずれかになります。
  • ブラウザを検出して追加しますまたはファイルへの JSP タグ

構文:

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

jsp:パラメータ

  • これは、上記のプラグイン オブジェクトの子オブジェクトです。
  • 追加パラメータを提供するには、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

コード行 10: ここでは、XNUMX つの属性を取得する jsp: plugin オブジェクトを取得します。

  • タイプ – この場合は Bean です
  • ファイルのコード名
  • コードベース – パッケージ名のパス

コード行 11 ~ 14: ここでは jsp:params オブジェクトを取得し、その下に name と value の属性を持つ子 param オブジェクトがあり、この属性に id と name の値を設定しています。

学生.java

コード 7-17: 変数のIDと名前にはゲッターとセッターを使用しています。

コード19-20: 変数の id と name を初期化しています。

ここではparamの設定値をStudent Beanで使用する場合の出力を取得します。 この場合、param の値を設定および取得するだけで、どこにも出力しないため、出力はありません。

jsp:ボディ

  • このタグは、XML を動的に定義するために使用されます。 要素 コンパイル時よりもリクエスト時に生成される可能性があります。
  • 実際には、要素本体が動的に生成される XML を定義します。

構文:

<jsp:body></jsp:body>

ここでは、このタグ内に XML body タグを記述します

jsp:属性

  • このタグは 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>

コードの説明:

コード行 10: ここでは動的に生成される要素を定義しています。 XML、その名前は GuruXMLElement になります。

コード行 11 ~ 13: ここでは、動的に生成された XML の XML 属性となる属性を定義しています。

コード行 14: ここには、動的に XML で生成される XML 本文を記述する body アクションがあります。

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

jsp:属性

出力:

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

jsp:テキスト

  • 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>

コードの説明:

コード行 10: ここでは、テンプレートテキストを印刷するためにテキストオブジェクトを取得しています。

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

jsp:テキスト

出力:

テキスト アクション オブジェクト内に配置される Guru テンプレート テキストを取得します。

jsp:出力

  • 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>

コードの説明:

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

これは内部で生成されるため、出力はありません。