JSPアクション要素


JSP命令要素とは異なり、要求処理段階においてJSP動作要素が機能する.JSPアクション要素はXML文法で書かれています.JSPアクションでは、ファイルを動的に挿入したり、JavaBeanコンポーネントを再利用したり、ユーザーを別のページにリダイレクトしたり、JavaプラグインにHTMLコードを生成したりすることができます.アクション要素には、XML基準を満たす構文が1つしかありません.
<jsp:action_name attribute="value" />

動作要素は基本的に事前定義された関数であり、JSP仕様は一連の標準動作を定義し、JSPを接頭辞として使用し、使用可能な標準動作要素は以下の通りである.
構文
説明
jsp:include
ページが要求されたときにファイルを導入する
jsp:useBean
JavaBeanの検索またはインスタンス化
jsp:setProperty
JavaBeanのプロパティの設定
jsp:getProperty
JavaBeanのプロパティを出力
jsp:forward
リクエストを新しいページに移動
jsp:plugin
ブラウザタイプに応じてJavaプラグイン用にOBJECTまたはEMBEDタグを生成
jsp:element
動的XML要素の定義
jsp:attribute
動的定義XML要素のプロパティの設定
jsp:body
動的定義XML要素の内容の設定
jsp:text
JSPページおよびドキュメントにテキストを書き込むテンプレートを使用する
すべてのアクション要素にはid属性とscope属性の2つの属性があります.
  • idプロパティ:
    id属性は動作要素の一意の識別子であり,JSPページで参照できる.アクション要素が作成したid値はPageContextで呼び出すことができます.
  • scopeプロパティ:
    このプロパティは、アクション要素のライフサイクルを識別するために使用されます.idプロパティはscopeプロパティと直接関係し、scopeプロパティは関連するidオブジェクトの寿命を定義します.scopeプロパティには、page、request、session、アプリケーションの4つの可能な値があります.


  • アクション要素は、静的および動的なファイルを含むために使用されます.このアクションは、生成中のページに指定したファイルを挿入します.構文の形式は次のとおりです.
    <jsp:include page="relative URL" flush="true" />

    先に説明したように、JSPファイルがサーブレットに変換されたときにファイルを導入するincludeコマンドですが、ここでのjsp:include動作は異なり、ファイルを挿入する時間はページが要求されたときです.
    以下はincludeアクションに関するプロパティのリストです.
    ツールバーの
    説明
    page
    ページに含まれる相対URLアドレス
    flush
    アセットを含む前にキャッシュ領域をリフレッシュするかどうかを定義するブールアトリビュート
    使用例
    まず、含まれるページ:datetime.jspを作成します.
    <%= new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date()) %>

    次にdatetime.jspを参照するページを作成します:index.jsp
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>index</title>
    </head>
    <body>
    <p><jsp:include page="datetime.jsp"/>
    </p>
    </body>
    </html>

    index.jspにアクセスすると、現在の時刻は2016-02-03 13:54:51のような情報が表示されます.

    jsp:useBeanアクションは、JSPページで使用するJavaBeanをマウントするために使用されます.この機能は、Javaコンポーネントの再利用の利点を発揮するとともに、JSPがサーブレットと区別される利便性を損なうことを回避するため、非常に役立ちます.jsp:useBean動作の最も簡単な構文は:
    <jsp:useBean id="name" class="package.class" />

    クラスのロード後、jsp:setPropertyおよびjsp:getPropertyアクションを使用してbeanのプロパティを変更および取得できます.
    以下はuseBeanアクションに関するプロパティのリストです.
    ツールバーの
    説明
    class
    Beanの完全なパッケージ名を指定します.
    type
    オブジェクト変数を参照するタイプを指定します.
    beanName
    Java.beans.Beansのinstantiate()メソッドでBeanの名前を指定します.

    jsp:setPropertyは、インスタンス化されたBeanオブジェクトのプロパティを設定するために使用されます.2つの方法があります.まず、jsp:useBean要素の後にjsp:setPropertyを使用できます.以下に示します.
    <jsp:useBean id="myName" ... />
    ...
    <jsp:setProperty name="myName" property="someProperty" .../>

    この場合、jsp:useBeanが既存のBeanを見つけたか、新しいBeanインスタンスを作成したかにかかわらず、jsp:setPropertyが実行されます.2つ目の使い方は、jsp:setPropertyをjsp:useBean要素の内部に入れることです.以下のようにします.
    <jsp:useBean id="myName" ... >
    ...
       <jsp:setProperty name="myName" property="someProperty" .../>
    </jsp:useBean>

    この場合、jsp:setPropertyは、Beanインスタンスを新規作成する場合にのみ実行され、既存のインスタンスを使用する場合はjsp:setPropertyは実行されません.
    ツールバーの
    説明
    name
    nameプロパティが必要です.プロパティを設定するBeanを表します.
    property
    propertyプロパティが必要です.どのプロパティを設定するかを示します.propertyの値が「*」の場合、すべての名前とBean属性の名前が一致する要求パラメータが対応する属性setメソッドに渡されることを示す特別な使い方があります.
    value
    valueプロパティはオプションです.この属性はBean属性の値を指定するために使用されます.文字列データは、ターゲットクラスで標準のvalueOfメソッドによって自動的に数値、boolean、Boolean、bytte、Byte、char、Characterに変換されます.例えば、booleanおよびBooleanタイプの属性値(例えば「true」)はBoolean.valueOf変換、intおよびIntegerタイプの属性値(例えば「42」)はInteger.valueOf変換である.valueとparamは同時に使用できませんが、いずれかを使用できます.
    param
    paramはオプションです.Beanプロパティの値としてどのリクエストパラメータを使用するかを指定します.現在のリクエストにパラメータがない場合、何もしないで、Beanプロパティのsetメソッドにnullを渡すことはありません.したがって、Bean自身にデフォルトのプロパティ値を指定することができます.リクエストパラメータが新しい値を明確に指定した場合にのみ、デフォルトのプロパティ値を変更できます.

    jsp:getPropertyアクションは、指定したBean属性の値を抽出し、文字列に変換して出力します.構文の形式は次のとおりです.
    <jsp:useBean id="myName" ... />
    ...
    <jsp:getProperty name="myName" property="someProperty" .../>

    次の表はgetPropertyに関連付けられたプロパティです.
    ツールバーの
    説明
    name
    取得するBeanプロパティの名前.Beanは定義されている必要があります.
    property
    Beanプロパティを抽出する値を示します
    使用例
    まずBeanクラスを作成します
    package com.gujin.model;
    
    public class UserInfo {
       private String userId;
       private String userName;
    
       public String getUserId()
       {
          return userId;
       }
    
       public void setUserId(String userId)
       {
          this.userId = userId;
       }
    
       public String getUserName()
       {
          return userName;
       }
    
       public void setUserName(String userName)
       {
          this.userName = userName;
       }
    }

    それからjspページを書きます
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <jsp:useBean id="userInfo" class="com.gujin.model.UserInfo"/>
    <jsp:setProperty name="userInfo" property="userId" value="gjjiang"/>
    <jsp:setProperty name="userInfo" property="userName" param="userName"/>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>index</title>
    </head>
    <body>
    <p><jsp:getProperty property="userId" name="userInfo"/>
    <br/><jsp:getProperty property="userName" name="userInfo"/>
    </p>
    </body>
    </html>


    jsp:forward動作はリクエストを別のページに移動します.jsp:forwardタグには属性pageが1つしかありません.構文のフォーマットは次のとおりです.
    <jsp:forward page="Relative URL" />

    以下はforwardに関連付けられたプロパティです.
    ツールバーの
    説明
    page
    Pageプロパティには相対URLが含まれています.Pageの値は直接与えることも、要求時に動的に計算することもでき、JSPページまたはサーブレットであることもできます.

    jsp:pluginアクションは、ブラウザのタイプに応じて、JavaプラグインでAppletを実行するために必要なOBJECTまたはEMBED要素を挿入するために使用されます.必要なプラグインが存在しない場合は、プラグインをダウンロードし、Javaコンポーネントを実行します.Javaコンポーネントは、appletまたはJavaBeanであってもよい.pluginアクションには、JavaコンポーネントをフォーマットするためのHTML要素に対応する複数のプロパティがあります.param要素は、AppletまたはBeanにパラメータを渡すために使用できます.

    アクション要素XML要素を動的に定義します.動的は非常に重要であり、これはXML要素がコンパイル時に静的ではなく動的に生成されることを意味する.

    アクション要素では、JSPページおよびドキュメントにテキストを書き込むテンプレートを使用できます.構文形式は次のとおりです.
    <jsp:text>Template data</jsp:text>

    以上のテキストテンプレートには、他の要素は含まれません.テキストとEL式のみが含まれます.