JSP から J2EE サーバ環境の分散型オブジェクトにアクセスできるようになります。
このタグでは、lookup
(JNDI 検索 (ルックアップ))、list
(一覧)、attribute
(属性)、および search
(検索) アクションがサポートされます。
<jrun:jndi
action="lookup|list|search|attribute" name="lookup/search name" attributes="search attributes" (検索のみ) [provider="service provider class name"] [url="service provider URL"] id="variable name" [scope="page|request|session|application"] />
必須。java.lang.String
を取ります。
JNDI アクション。値は、lookup
、list
、attribute
、および search
です。各 action
の機能は次のとおりです。
lookup
の場合、このタグは JNDI サーバからのオブジェクトを返します。
list
の場合、このタグは接頭辞が一致するオブジェクトの一覧を返します。attribute
の場合、このタグは LDAP などの指定されたディレクトリ サービスから属性の一覧を返します。search
の場合、指定ディレクトリ サービスから名前にバインドされたオブジェクトの列挙を返します。必須。java.lang.String
または javax.naming
を取ります。
JNDI 検索 (ルックアップ)/検索名。javax.naming.Name
のインスタンスも使用で
きます。
必須。java.util.Dictionary
、java.util.Map
、または
javax.naming.Attributes
です。
検索対象のキーと値ペアのセット。たとえば、Hashtable
、Hashmap
、または
javax.naming.Attributes
のインスタンスのフォームのキーと値のペアを指定
できます。
オプション。java.lang.String
を取ります。
JNDI 検索 (ルックアップ)/ディレクトリ サービス プロバイダ クラス。
オプション。java.lang.String
を取ります。
この属性は、JNDI 検索 (ルックアップ)/ディレクトリ サービス プロバイダ URL を表します。
必須。java.lang.String
を取ります。
jndi
結果オブジェクトのスクリプト変数名。
オプション。java.lang.String
または int を取ります。
このタグによって返されるオブジェクトの既定の JSP スコープ。有効文字列値は、
page
、request
、session
、および application
です。既定値は page
です。
jndi
タグによって返されるオブジェクトのタイプは、action
によって異なります。返されるオブジェクトのスコープは、タグの scope
によって決まり、その既定値は page
です。param
タグを使用してこのオブジェクトのスクリプト変数を宣言すると、定義されたスコープ内でその変数を暗黙オブジェクトのように使用できます。次の表は、各 action
、アクションによって返されるオブジェクト、および返されるオブジェクトの列名とそのデータ タイプの一覧です。
allaire.taglib.NameTable
、DirSearchTable
、および AttributeTable
クラスにより、allaire.taglib.QueryTable
クラスが拡張されます。QueryTable
には javax.sql.RowSet
インターフェイスが実装されています。このインターフェイスによって java.sql.ResultSet
が拡張されます。sql
、storedproc
、getmsg
、getmail
、および jndi
タグを使用する前に、javax.sql.RowSet
および java.sql.ResultSet
について把握しておくことをお勧めします。詳細については、次の URL にある JDBC API のマニュアルを参照してください。
これは、一覧アクションで jndi
タグのスクリプト変数を使用する場合の共通のシナリオです。この例では getObject
が使用されていますが、RowSet
には異なるオブジェクト タイプを使用するほかの多くの getter メソッドがあります。
param
タグで NameTable
または RowSet
にタイプ変換します。
<jrun:param id="result" type="NameTable"/>
または
<jrun:param id="result" type="javax.sql.RowSet"/>
<jrun:foreach group='<%=result%>'>
<%= result.getObject("Name") %><br>
<%= result.getObject("ClassName") %><br>
<%= result.getObject("isRelative") %><br>
</jrun:foreach>
次の表では、jndi
list
、search
、および attribute
結果セットで最も一般的に使用されるメソッドについて説明しています。
Web アプリケーションで jndi
タグを使用する前に、JNDI ディレクトリ サービスを使用可能にする必要があります。
この JSP は、jndi
タグの使用方法および結果データの表示方法を示しています。
<%@ page import="allaire.taglib.*" %>
<%@ taglib uri="jruntags" prefix="jrun" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>jndi Tag Example</title></head><body>
<%--
JNDI 検索 (ルックアップ) アクションを実行します。
--%>
<jrun:jndi action="lookup" name="java:comp/UserTransaction" id="txn"/>
<%--
JNDI 一覧アクションを実行します。
--%>
<jrun:jndi action="list" name="java:comp/env/jdbc" id="result"/>
<%--
結果セットをループ化し、名前値を表示します。
--%>
<jrun:param id="result" type="NameTable"
/>
<jrun:foreach group='<%= result %>'>
<%= result.getObject("Name") %><br>
<%= result.getObject("ClassName") %><br>
<%= result.getObject("isRelative") %><br>
</jrun:foreach>
</body></html>