プロが教えるわが家の防犯対策術!

java、サーブレットなどを勉強しています。html(jsp)のform actionでサーブレットに飛ばしたいとき、レイアウト上別の処理をさせたい(submit)ボタンがあります。

form actionタグはネスト出来ないとの事で、他の方法を探しています。
submitでなく、type="button" でjava script処理と言う解法があるようですが、まだそこまで勉強していないので、ひとつ教えてください。

input type="submit"にvalueがあります、ボタン名になりますが、このvalueは受け手のサーブレットで、読めないのでしょうか。読めればそれによって、処理を分けれるのですが。
あるいは、input type="submit"でサーブレットに別の情報を送る手段はあるでしょうか。

よろしくお願いいたします。

A 回答 (2件)

こんな感じですかね。



<html>
<head>
<script type="text/javascript">
function test(param) {
document.form1.hidBtn.value = param;
}
</script>
</head>
<body>
<form action="飛ばしたい先" name="form1">
<input type="submit" value="submit1" onclick="test('submit1')" />
<input type="submit" value="submit2" onclick="test('submit2')" />
<input type="hidden" name="hidBtn value="" />

で、飛ばす先のServletで
String buf = request.getString("hidBtn");

if(buf.equals("submit1")){
// 処理1
} else if (buf.equals("submit2")) {
// 処理2
}

こんな感じで出来ると思います。
request.getString()はあってるかどうか覚えてません。
ただ確かこんな感じで取れたような気がするだけです。
他にもgetAttribute("")とかも合った気がします。
なんせ普通のServletを暫く組んでいない為、やり方忘れましたが、hiddenパラメータにJavascriptから値をセットしてやればServletで受取る事は可能です。

このrequestってのは知ってると思いますが、HttpServletRequestのインスタンスです
    • good
    • 0

hiddenの項目を用意しておいて、submit時にそれぞれの値を設定してはどうでしょうか?



<input type="submit" value="auau" onclick="this.form.exec.value='auau'">
<input type="submit" value="hoge" onclick="this.form.exec.value='hoge'">
<input type="hidden" name="exec">
このような感じで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!