Apcoordinator ユーザーズガイド |
目次 |
第7部 携帯端末対応アプリケーションの開発 | > 第39章 ブラウザアプリケーションの開発 | > 39.4 ブラウザアプリケーションのカスタマイズ |
サーバへのデータ送信機能が割り当てられているボタンが押された場合、ブラウザアプリケーションは送信属性が設定されているすべてのコンポーネントの入力情報を収集し、コンポーネントの名前と入力されているデータとを組にしてサーバに送信します。標準では以下の内容が、入力されているデータとしてサーバに送られます。
コンポーネント サーバに送信される内容 ボタン ラベル文字列 リストボックス 選択中の項目の文字列 テキストボックス 入力されている文字列
サーバに送信されるコンポーネントの内容は次の手順で変更します。
ブラウザアプリケーションのvalueメソッドをオーバライドします。
protected Vector value(Object item)
valueメソッドは、サーバへアクセスする直前に呼び出されるメソッドです。
valueメソッドのitemパラメタを判定して、内容を獲得するコンポーネントを識別します。
サーバに送信したい内容をVectorオブジェクトに追加して返します。
Vectorオブジェクトに追加した内容は、送信前にブラウザアプリケーションによりURLエンコードされます。
Vectorオブジェクトに複数の要素を追加した場合は、コンポーネントの名前と内容の組が複数送信されます。
要素数が0のVectorオブジェクトを返すと、そのコンポーネントの情報は送信されません。
VectorオブジェクトにStringオブジェクト以外のオブジェクトは追加しないでください。
import com.nttdocomo.ui.*; import java.util.*; public class MyBrowser extends IF { protected Vector value(Object item) { if( name(item).equals("subject") ) { // subjectリストボックスについては項目の文字列ではなく、 // インデックスをサーバに送信します。 Vector v = new Vector(); ListBox lb = (ListBox)item; if( lb.getSelectedIndex() > -1 ) { for( int i = 0 ; i < lb.getItemCount() ; i++ ) { if( lb.isIndexSelected(i) ) { v.addElement(Integer.toString(i)); } } } return v; } else { // ブラウザアプリケーション本体の処理を呼び出します。 return super.value(item); } } }
目次 |