Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

プルダウンごとにActionクラスの特定のメソッドを実行したい

当方、strutsを使ったWebアプリケーションを開発しています。どうしても解決できない点があるので質問いたします。

5つのプルダウンメニューがあり、1番目のメニューで何か選ぶと、それに対応する値が2番目のメニューにセットされる。2番目で選ぶと3番目に、3番目で選ぶと4番目に・・・という動作を行いたいのです。

一番上のプルダウンメニューは
<html:select property="level1" onchange="level2get();">
とし、javascriptのlevel2get()関数を呼んで
function level2get() {        document.staffsearchActionForm.submit();
    }
このようにフォームを送信し、Actionクラス内の特定のメソッドを実行してlevel2の値を設定してrequest.setAttribute→2番目のプルダウンメニューに設定 ということを考えています。

いろいろなページや文献を見たのですが、特定のメソッドを実行する方法がわからず途方に暮れています。DispatchActionを使うのかと思いましたが、私の場合だとjspやActionクラスにどういう記述をすべきかがわかりません。

どのようにすればいいか、ぜひお教えください。

3

回答

6730

閲覧

3件の回答

評価

0

そういうのには、Ajaxとかが必要になるんでは。

評価

0

動的にリアルタイムな情報を表示したいというのであれば、Ajaxしかないよ。
(隠しフレームを使ったAjaxもどきも、あるにはあるけど)

たとえば都道府県に対する市区町村を出したいだけなら、非表示にした47個の<select>を予め作っておいて、1つ目の選択に応じて表示すればいい。

どちらにせよJavaScript必須となるから、一部の人にとっては使えないページになることも、考えておこう。

このへんStrutsとは関係がない。
クライアントの処理とサーバの処理とを、分けて考える必要がある。

評価

0

$さんのおっしゃる通り、
サーバサイドとクライアントサイドの処理を切り分けて
考える必要があります。

解決方法は色々ありますが、
まず期待している画面の動作は
クライアントサイドの処理が
必須でしょう。

Ajaxを使うか
display:noneで非表示/表示を使い分けるか
…色々調べてみてください。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。