-PR-
解決
済み

フォーム上で押されたボタンによってサーブレットの処理を変えたい

  • すぐに回答を!
  • 質問No.88553
  • 閲覧数8282
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 32% (45/139)

Urizakaです。
さて、さっそく質問です。
JSPの同一フォーム上に「登録」「修正」「削除」のボタンを置き、その押された
ボタンによってサーブレット内での処理が切り替わる(具体的には、違う
SQL文を実行し、違うJSPページをgetRequestDispatcherメソッドで生成
する)ようにしたいのですが、どのようにすればよいのでしょうか?
もちろんそれぞれの処理に対して別々のサーブレットを作り、javaScript
でそれぞれのサーブレットへ飛ぶように制御するという処理も考えたことは
考えたのですが、できれば一つのサーブレットで済ませたいと考えたもので
…宜しくお願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル5

ベストアンサー率 100% (2/2)

お恥ずかしい限りです。
前述の例、動くわけがありませんね(汗)

2つめの例、書きなおします。

---------------------------------------------------

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=登録 onClick="func('Toroku');">
<input type=button name=MyClick value=修正 onClick="func('Shusei');">
<input type=button name=MyClick value=削除 onClick="func('Sakujo');">
<input type=hidden name=MySubmit>
</form>

<script language="JavaScript">
function func(MyCommand){
document.MyForm.MySubmit.value=MyCommand;
document.MyForm.submit();
}
</script>

■Servletでの処理
// リクエストの取得
String MyAction = req.getParameter("MySubmit");

// 処理の実行
if (MyAction.equals("Toroku")){...}
if (MyAction.equals("Shusei")){...}
if (MyAction.equals("Sakujo")){...}



---------------------------------------------------

こんな感じでどうでしょうか。
ちなみにこうやって書いておくと、フォームのボタンからじゃなくても
アンカーをクリックすることで同じ効果が出せそうな……

<a href="JavaScript:func('Toroku')">登録</a>

あ、でもまたボロが出そうなのでこの辺で(^_^;)
お礼コメント
urizaka

お礼率 32% (45/139)

urizakaです。

ありがとうございます。
今度はうまくいったようです。
投稿日時 - 2001-06-13 09:59:13
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル5

ベストアンサー率 100% (2/2)

こんにちわ。 僕の知ってるやりかたでは、フォームのボタン名を パラメータとしてサーブレットに渡してあげて、 それをサーブレット側で判断して処理を実行させる方法が あります。 例えば、以下のようになります。 --------------------------------------------------- ■JSPのフォーム <form name=MyForm ac ...続きを読む
こんにちわ。

僕の知ってるやりかたでは、フォームのボタン名を
パラメータとしてサーブレットに渡してあげて、
それをサーブレット側で判断して処理を実行させる方法が
あります。
例えば、以下のようになります。

---------------------------------------------------

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=submit name=MySubmit value=Insert>
<input type=submit name=MySubmit value=Update>
<input type=submit name=MySubmit value=Delete>
</form>

■Servletでの処理
// リクエストの取得
String MyAction = req.getParameter("MySubmit");

// 処理の実行
if (MyAction.equals("Insert")){...}
if (MyAction.equals("Select")){...}
if (MyAction.equals("Delete")){...}

---------------------------------------------------

といったやり方があります。
上にあげたやり方だと、ボタンの名前が英語になります。
日本語で動くかどうかは……ちょっと試してないです。

もし日本語でダメなら、ちょいと面倒だけどこんなやり方もあるかと思います。

---------------------------------------------------

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=検索 onClick="func();">
....
<input type=hidden name=MySubmit>
</form>

<script language="JavaScript">
function func(){
if(document.MyForm.MyClick.value="検索")
{document.MyForm.MySubmit.value="Search";}
...

document.MyForm.submit();
}
</script>

---------------------------------------------------

後は同様。
この場合、サーブレットに送るパラメータを、実際のコマンド名じゃなくて
コマンドIDとかにして管理しておくと、なおよいかもしれませんね。

以上、参考になれば幸いです。
補足コメント
urizaka

お礼率 32% (45/139)

Urizakaです。
回答ありがとうございます。
しかしながら、前者はともかく、後者なのですが動きませんでした。
いろいろと試してみたところ、どうやらMySubmitのパラメーターが
Servletへ行っていないようなのですが…
こちらでもいろいろと試して見ますので、すみませんがまた宜しく
お願いします。
投稿日時 - 2001-06-11 22:23:44


  • 回答No.2
レベル5

ベストアンサー率 100% (2/2)

あ、すみませんでした! (誤) if(document.MyForm.MyClick.value="検索") (正) if(document.MyForm.MyClick.value=="検索") イコールが1つ抜けていましたね……。 でもさっきは動いたような……。 ブラウザのバージョン違いかな?? これで、どうでしょうか。 ...続きを読む
あ、すみませんでした!

(誤)
if(document.MyForm.MyClick.value="検索")

(正)
if(document.MyForm.MyClick.value=="検索")

イコールが1つ抜けていましたね……。
でもさっきは動いたような……。
ブラウザのバージョン違いかな??

これで、どうでしょうか。
補足コメント
urizaka

お礼率 32% (45/139)

urizakaです。
いえ、駄目でした。
やはりhiddenになっているMySubmitにうまく数値が入らないよう
なのですが…
うーん。
ちなみに私の環境はJbuilder4です。
投稿日時 - 2001-06-12 12:15:26
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ