- PR -

JSF、JavaScriptによる動的画面変更

1
投稿者投稿内容
Pianoman
常連さん
会議室デビュー日: 2003/05/24
投稿数: 26
投稿日時: 2008-06-02 12:20
JSFを使ったWebシステムを開発中なのですが、h:selectOneListBoxタグで表示されたリストボックスの選択内容に応じて、他の表示を変更させようと考えています。

例えば、リストボックスには商品ID、商品名が必要ですが、選択された商品に応じて商品単価の表示を変えるとかをjavaScriptで行う。

このようなことを行いたい場合、selectItemコンポーネントで対応可能でしょうか?
それとも、XMLとしてダウンロードさせ、そこからリストボックスを表示させたり、商品単価への表示変更を制御するのでしょうか?

仮にXMLを使った場合、最新状態の商品情報DBの中からリクエスト毎にSELECTさせたいので、XMLファイルをダウンロードできない、と考えているのですが・・・

アイデアや考え方など、ご教示いただければ幸いです。
蒋 いつ峰
会議室デビュー日: 2005/10/08
投稿数: 11
投稿日時: 2008-06-02 13:38
javascriptで行う場合、以下の二つは如何でしょうか?

1.商品が選択される時、ajax通信を行い、商品名をサーバから取る。

2.画面表示時、画面に表示する全ての商品の商品名をクライアントに渡して、非表示にする(例えばCSSでdisplay:none)。商品が選択される時、javascriptを使って非表示にした商品のDOMノードを取得し、選択された商品の商品名を表示する。商品が多いときはあまりよくないと思いますが。
_________________
ブログ
http://uprushworld.blogspot.com/

助君 -- あなた専用のカスタマイズ ウェブナビ
http://www.sukekun.com/

A website and community for programmer
http://uprush.net
Pianoman
常連さん
会議室デビュー日: 2003/05/24
投稿数: 26
投稿日時: 2008-06-02 18:51
uprushさん、アイデアありがとうございます。

ajaxですか、考えてはいるのですが・・・
ajaxによるリクエストを送信した場合、サーバー側ではJSFコンポーネントを使うのか、非JSFのサーブレットとするのか、調べているところです。

アイデア2の案が取り掛かり易そうではありますね。ただ、ご指摘のように、複数のテーブルもどきをダウンロードさせることになったり、エントリーが増えてしまうとパフォーマンスも気になります。
Pianoman
常連さん
会議室デビュー日: 2003/05/24
投稿数: 26
投稿日時: 2008-06-03 14:27
uprushさんのアイデア通り、cssでdisplay:noneとしたケースは上手くいきました。
ありがとうございました。

で、次なる問題が出てきてしまい、xmlデータを使用することになりそうです。
となると、ajax通信は避けることが出来ないようです。

そうなると、ブラウザ側からのrequestを受ける(非JSFの)サーブレットを作ればよいのでしょうが、なんとかJSFの仕組みを使えないものでしょうか?
Pianoman
常連さん
会議室デビュー日: 2003/05/24
投稿数: 26
投稿日時: 2008-06-03 17:15
自己レスです。
下記URLのサイトでJSFとAjax連携に関して記述されていました。
これをヒントにしてトライしてみる予定です。
http://www.eisbahn.jp/yoichiro/2006/11/jsfajaxui_with_shale_remoting.html

他にもナイスなアイデアがあればご教示いただければ幸いです。
1

スキルアップ/キャリアアップ(JOB@IT)