アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログラム初心者です。

jspにてformでデータを送り、サーブレットでそれを受け取りたいのですが値がNULLになってしまします…。
どなたかお力を貸していただけないでしょうか?

------------------------
<head>
<script type="text/javascript">
function setValue(val) {
document.form1.testval.value = val;
}
</script>
</head>
<body>
<form name="form1" method="get" action="xxxx">
<INPUT type="hidden" name="testval">
<TABLE border="1" width="100%">
<tr>
<td><BUTTON type="submit" value="1" onClick="setValue(this.value)">1</BUTTON></td>
<td> <BUTTON type="submit" value="2" onClick="setValue(this.value)">2</BUTTON></td>
</tr>
</TABLE>
</form>
</body>
------------------------

・やりたいこと
複数のボタンから、選択したボタンのvalue値を送り、サーブレット側で取得したい

・困っていること
jsp側でボタンを押したときにjsのsetValue()を呼び出し、testvalに値を設定しているが、
サーブレット側で「request.getParameter("testval");」で値が所得できない(NULLになる)

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

A 回答 (2件)

getParameterではなくgetAttributeを使って見ては・・・

    • good
    • 0

こんにちは



ご提示の情報だけでは原因の特定は難しいと思いますが・・・
 1)送信はできているが、サーバ側で処理できていない
 2)想定したデータが送信されていない
のどちらなのかをまず確認したいですね。

例えば、testvalに初期値を与えておいてそのまま送信した時に正しく受け取れるならば、1)に関しては一応はクリアできていると考えてもよさそうです。
2)に関してはブラウザ側の問題なのですが、ご提示のソースでも大抵のブラウザは動作すると思われます。
しかしながら、name属性を固有名として扱った場合にうまく処理できないケースもあるようです。

念のため、
 document.forms["form1"].elements["testval"].value = val;
のような書式にするか、あるいは最近のブラウザなら
 document.querySelector("form[name='form1'] input[name='testval']").value = val;
のような書式でも動作すると思います。

※ 上記のスクリプトはform1、testvalなどのname属性を持つ要素が他には無いことを前提にしています。
※ 上の対処でもうまくいかない時は、スクリプトが呼ばれているかの確認やスクリプトがOFFになっていないかなど、その他の部分のチェックも必要になってきそうですね。
    • good
    • 0
この回答へのお礼

詳しい解説ありがとうございます。

web.xmlの設定ミスでそもそも送信できていないのが原因でした…。
初歩的なミスで申し訳ないです…。

お礼日時:2016/09/05 02:13

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A