行インスタンスを取得し、その行に対して操作を実行します。
JSP構文
<jbo:Row
id="rowInstanceName"
datasource="datasourceInstanceName"
[ action="active | create | createinrange | createonly | current | delete | find | get | lock | update" ]
[ rowkeyparam="HTTP parameter name"] | [ rowkey="rowPointer" ] >
[JSP_tags]
</jbo:Row>
説明
<jbo:Row>
データ・タグにより、行インスタンスに対する行の取得および行操作を実行できます。
行の取得操作には次のものがあります。
active
は、現在<jbo:RowsetIterator>
データ・タグにより反復されている行を取得します。
find
は、リクエスト・オブジェクトのURLパラメータから行を取得し、行の現在位置を変更します。
get
は、リクエスト・オブジェクトのURLパラメータから行を取得しますが、行の現在位置は変更しません。
行操作を実行するには、その前に明確に行を特定する必要があります。データソースの行を特定するには、次のようにして<jbo:Row>
タグを使用します。
find
またはget
アクションを使用します。
active
またはcurrent
アクションを使用します。
<jbo:Row>
タグで実行可能な行操作は次のとおりです。
current
は、指定されたデータソース内の現在行に行ポインタを設定します。
create
は、指定されたデータソースに新規の行を挿入し、この行に行ポインタを配置します。
createinrange
は、行の現在位置を変更せずに、範囲の先頭に新規の行を挿入します。
createonly
を入力すると、新しい行が作成されますが、行セットには挿入されません。このアクションは、各属性のデフォルト値を取得するためだけに行を作成する必要があり、取得後はこの行を使用しない場合に有用です。
delete
は、指定されたデータソースの現在行を削除します。
lock
は、指定されたデータソース内で表示または変更している行データが、データの処理が終了するまで他のユーザーによって変更されないようにします。
update
は、指定されたデータソースで(フォームからのURLパラメータを使用して)設定した属性の値を変更します。
参照: oracle.jbo.Row
属性
id-<jbo:Row>
タグのインスタンスの名前。ページ内で一意の名前を割り当てる必要があります。有効なJava識別子であればどのような名前でもかまいません。スクリプトレット内で、型oracle.jbo.Row
のスクリプト可能な変数としてこのIDを使用できます。
datasource-アクションの実行対象となる行を持つデータ・ソースID。<jbo:DataSource>
データ・タグを使用してデータ・ソースを作成します。
action-実行する行操作。データ・ソースに対して実行するアクションに応じて、次の値を入力します。active
、create
、createinrange
、createonly
、current
、find
、get
、update
、delete
、dock
。
active
を入力すると、<jbo:RowsetIterator>
データ・タグの本体内で現在反復されている行が取得されます。このアクションでは、現在行は変更されません。
create
を入力すると、行セット内の現在行の前(または、現在行がない場合、行セットの最初に)新しい行が挿入され、現在行が新しい行に設定されます。
createinrange
を入力すると、現在行が変更されることなく、範囲の最初に新しい行が挿入されます。
createonly
を入力すると、新しい行が作成されますが、行セットには挿入されません。このアクションは、各属性のデフォルト値を取得するためだけに行を作成する必要があり、取得後はこの行を使用しない場合に有用です。
current
を入力すると、指定されたデータ・ソース内の現在行に行ポインタが設定されます。
delete
を入力すると、指定されたデータ・ソース内の現在行が削除されます。
find
を入力すると、リクエスト・オブジェクト上のURLパラメータから行が取得されます。Get
とは異なり、このアクションでは、行の取得後に現在行が変更されます。
get
を入力すると、リクエスト・オブジェクト上のURLパラメータから行が取得されます。find
とは異なり、このアクションでは、行の取得後に現在行は変更されません。
lock
を入力すると、指定されたデータ・ソースでユーザーが表示または変更する行データが、データの処理が完了するまで、他のユーザーによって変更されなくなります。
update
を入力すると、指定されたデータ・ソースで(フォームからのURLパラメータを使用して)設定した属性の値が変更されます。
ヒント: <%=rowop%>
などの式を使用して、実行時にアクション・パラメータを設定することもできます。ページの別の部分からアクション値を<jbo:Row>
タグに渡します。
<jbo:Row>
タグで、データ・ソース上の現在行ポインタが使用されます。
ヒント: <jbo:ShowValue datasource='ds1' dataitem='RowKey'></jbo:ShowValue>
のように、dataitemが特別な属性値RowKeyに設定された<jbo:ShowValue>
タグを使用して、dataitemの現在行の名前を取得できます。
request.getParam("RowKey")
を使用して文字列値を取得する必要があります。rowkeyparam
属性を使用すると、RowKeyを直接取得できます。
例
次の例では、ユーザーが別のJSPページで選択したマスター行に対するディテール行セットを、<jbo:Row>
タグを使用して表示する方法を示しています。この例では、行の選択ページでHREFアンカーが生成され、ユーザーがこれをクリックすると、ディテール・ページが起動します。
次のコードでは、マスター表のHREFが、RowKeyValue HTTPパラメータ(パラメータ名はアプリケーション固有)を渡します。このパラメータは、ユーザーがShowValueタグのdataitemを特別な属性値であるRowKeyに設定して取得したものです。
<jbo:ApplicationModule id="MyPackageModule" configname="myPackage.MyPackageModule.MyPackageModuleLocal" releasemode="Stateful" /> <jbo:DataSource id="dsMaster" appid="MyPackageModule" viewobject="DeptView"> </jbo:DataSource> <table border="1"> <jbo:RowsetIterate datasource="dsMaster" > <TR> <TD><a href="detail.jsp?RowKeyValue=<jbo:ShowValue datasource='dsMaster' dataitem='RowKey'/>">See this record</a> </TD> <TD>Department Name:</TD> <TD><jbo:ShowValue datasource="dsMaster" dataitem="Dname"> </jbo:ShowValue> </TD> </TR> </jbo:RowsetIterate> </table>
受信ページでは、<jbo:Row>
タグのfind
アクションにより、渡された行キー値を含むHTTPパラメータの名前に基づいてユーザーがクリックした行が特定されます。find
アクションでマスター・データソースの現在行を設定することにより、ディテール行セットが表示可能になります。
注意: ステートフル解放モード(デフォルト)でアプリケーション・モジュールを使用する場合は、行キーを使用して行を検索する前にデータソースをリフレッシュする必要があります。データソースは次のコードを使用してリフレッシュできます。:
<jbo:RefreshDataSource datasource="dsMaster" />
受信ページの構文を次に示します。この構文では、定義済のRowKeyValue HTTPパラメータを(送信および受信JSPページでこのパラメータ名が一致していることを確認したうえで)使用し、渡された行のディテール・ビューを表示します。
<jbo:ApplicationModule id="MyPackageModule" configname="myPackage.MyPackageModule.MyPackageModuleLocal" releasemode="Stateful" /> <jbo:DataSource id="dsMaster" appid="MyPackageModule" viewobject="DeptView" > </jbo:DataSource> <jbo:RefreshDataSource datasource="dsMaster" /> <jbo:Row id="masterRow" datasource="dsMaster" action="find" rowkeyparam="RowKeyValue" > </jbo:Row> <jbo:DataSource id="dsDetail" appid="MyPackageModule" viewobject="EmpView" > </jbo:DataSource> <h2>Employees for Department: <jbo:ShowValue datasource="dsMaster" dataitem="Dname"
</jbo:ShowValue>
</h2> <table border="1"> <jbo:RowsetIterate datasource="dsDetail" > <TR> <TD>Employee Name</a> </TD> <TD><jbo:ShowValue datasource="dsDetail" dataitem="Ename"> </jbo:ShowValue> </TD> </TR> </jbo:RowsetIterate> </table>
受信ページの重要な部分は<jbo:Row>
タグ内にあります。
<jbo:Row id="masterRow" datasource="dsMaster" action="Find" rowkeyparam="RowKeyValue" > </jbo:Row>
次の例では、データソースへの新規レコードの挿入などのその他のタスクの実行にも<jbo:Row>
タグを使用できることを示しています。
<%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %> <jbo:ApplicationModule id="OnlineOrdersModule" configname="OnlineOrders.OnlineOrdersModule.LocalConfig" releasemode="Stateless" /> <jbo:DataSource id="ds1" appid="OnlineOrdersModule" viewobject="CustomerView" > </jbo:DataSource> <jbo:Row id="newRow" datasource="ds1" action="create" > <jbo:SetAttribute dataitem="Id" value="101" /> <jbo:SetAttribute dataitem="Lastname" value="wong" /> <jbo:SetAttribute dataitem="Firstname" value="howard"/> <jbo:SetAttribute dataitem="Address.Street" value="101 Main st" /> <jbo:SetAttribute dataitem="Address.City" value="Redwood City" /> </jbo:Row> </BODY> </HTML> <jbo:Commit appid="OnlineOrdersModule" /> <jbo:ReleasePageResources /
Copyright © 1997, 2009, Oracle. All rights reserved.