行インスタンスで指定された行の特定の属性を更新します。
JSP構文
<jbo:SetAttribute
datasource="datasourceInstanceName"
dataitem="attributeName | *"
[ value="attributeValue" ]
[ usemultipartformat="true | false" ]
/>
説明
属性の更新には次の値のいずれかを使用します。
行インスタンスはRowデータ・タグを使用して作成します。SetAttributeタグは、更新処理を実行する行インスタンス定義の内部に挿入する必要があります。
HTTPリクエスト・パラメータを使用してフォーム入力のデータを処理する場合は、SetAttributeタグのdataitemプロパティに対してワイルド・カード文字(*)を指定します。ワイルド・カードを指定すると、SetAttributeタグは、行インスタンスのデータソースで定義されたビュー・オブジェクトの属性名に一致するHTTPリクエスト・パラメータを検索します。一致するパラメータが見つかった場合、SetAttributeタグは、このHTTPリクエスト・パラメータ値でビュー・オブジェクトの属性を更新します。
HTTPリクエスト・パラメータでinterMediaデータ型を処理する場合は、multipart/form-data形式でエンコードされたMIMEタイプでHttpRequestオブジェクトを渡します。この場合、SetAttributeタグでは、usemultipartformatプロパティをtrue
に設定する必要があります。
オブジェクト型フィールドには、address.street
のようにdataitemにドット表記法を使用してアクセスします。
参照項目: oracle.jbo.Row
属性
datasource: 更新する属性を含むデータソースのID。データソースは、DataSourceデータ・タグを使用して作成します。
dataitem: データを更新する(datasource内で、行インスタンスで識別された)特定のビュー・オブジェクト属性の名前。HTTPパラメータによる動的値で更新する場合はアスタリスク(*)を使用します。
注意: HTTPパラメータを使用して値を取得する場合、dataitemにアスタリスク(*)を使用して、すべての属性名に一致するようにします。HTTPパラメータから取得した値は実行時まで不明であるため、この指定が必要となります。
value: 設定する属性のデータ値。dataitemにアスタリスク(*)を使用して、HTTPパラメータから動的値を取得する場合は、valueプロパティは指定しないでください。
usemultipartformat: デフォルト値はfalse
です。HTTPパラメータから値を取得し、HttpRequestオブジェクトのMIMEタイプがmultipart/form-data形式でエンコードされている場合は、true
に設定します。たとえば、オーディオやビデオ・イメージなどのintermediaデータ型を処理する場合はtrue
に設定します。
例
次のSetAttributeの例では、静的値と動的値の両方を使用して行の属性を更新します。
<jbo:Row id="row1" datasource="ds1" action="Current" >
<jbo:SetAttribute dataitem="Contactname" value="<%= first_name %>" />
<jbo:SetAttribute dataitem="Status" value="P" />
<jbo:SetAttribute dataitem="CustomerId" value="<%= cust_id %>" />
</jbo:Row>
次のSetAttributeの例では、dataitem属性でアスタリスク(*)を使用します。アスタリスクは、フォームで行属性値を設定し、それをHTTPパラメータで渡して更新するような場合に使用する必要があります。dataitemにアスタリスクが指定されたSetAttributeタグは、名前がHTTPリクエスト・パラメータ名に一致する属性の行属性を更新します。
<jbo:Row id="row1" datasource="ds1" action="Current" >
<HTML>
<BODY>
<jbo:SetAttribute dataitem="*" usemultipartformat="true" />
</jbo:Row>
もう1つの例を次に示します。
<%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
<HTML>
<BODY>
<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="tiger" />
<jbo:SetAttribute dataitem="Firstname" value="tiger" />
<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 />