- PR -

JavaScriptからのデータを、requestに取得する方法

1
投稿者投稿内容
けんけん
会議室デビュー日: 2005/08/02
投稿数: 5
投稿日時: 2005-08-02 16:24
Cフレームワークを使い開発をしています。

JavaScriptから値を取得し、
その値をサーブレット内でreq.getParameterで取得したいです。

現在の実装です。

function Search(categoryup,category_id,category_no){
alert(categoryup);
document.all.CATEGORY_UP = categoryup;
chxDoCmd(chxChkSubmit(), '/OrderByCommodity/Search?=0&'+category_id+'='+category_no);
}

Javaでは
String Category = req.getParameter(CATEGORY_UP)
とコーティングしていますが、Category = null と表示されてしまいます。
alert(categoryup);は正しく動作しています。

どなたかアドバイスよろしくお願いします。
YOU@IT
ぬし
会議室デビュー日: 2002/03/29
投稿数: 284
お住まい・勤務地: 大阪
投稿日時: 2005-08-02 16:48
そもそもJavaScriptで設定しているリクエストのキー(category_id)と、
サーバ側で受信しているリクエストのキー(CATEGORY_UP)が一致してるのでしょうか?
一致していなければnullになった当たり前ですが...

コード:
System.out.println(req#getParameterMap());


あるいは
コード:
Enumeration names = req.getParameterNames();
while(names.hasMoreElements() {
  String name = (String)names.nextElement();
  System.out.println(name + "=" + req.getParameter(name));
}


のような感じで、送信されてきたリクエストパラメタを表示できると
思うので一度確認してみてはどうでしょうか?

けんけん
会議室デビュー日: 2005/08/02
投稿数: 5
投稿日時: 2005-08-02 17:10
返答ありがとうございます。

キーが一致…とはどういうことでしょうか?
リクエストのキーというのが恥ずかしながら初耳です…

あと、
コード:
--------------------------------------------
System.out.println(req#getParameterMap());
--------------------------------------------
でリクエストパラメタを表示すると
weblogic.servlet.internal.ParamMap@1f9c9c6
が出力されました。
YOU@IT
ぬし
会議室デビュー日: 2002/03/29
投稿数: 284
お住まい・勤務地: 大阪
投稿日時: 2005-08-02 17:22

HTTPリクエストは、キーと値がペアになって送信されていると思います。

送信側では、
 URL ttp://サーバ/パス?キー=値 
と言う形式になっていますよね。

で、サーバ側で値を取得する際は、
 String 値 = req.getParameter(キー);
のようにして値を取得しますよね。

このキーが一致していないと値が取れないと言う意味です。

引用:

weblogic.servlet.internal.ParamMap@1f9c9c6


WebLogicのMap実装ですか...
java.util.HashMap等であればちゃんと中身を表示してくれるのですが、
これはtoString()をちゃんと実装してくれていないようですね...
(↑今の問題と直接関係ない話なので、意味がわからなければ気にしなくていいです)

こういうこともあろうかと、先の投稿で2案提示していますので、
もう一方の方法でやってみて下さい。

けんけん
会議室デビュー日: 2005/08/02
投稿数: 5
投稿日時: 2005-08-02 17:59
すみません。解決しました。

JSPでhiddenでキーの値を格納することで解決致しました。

JSPでの実装
<input name="<%=クラス名.CATEGORY_UP_ID%>" type="hidden" value="">

お答え頂きありがとうございました。
1

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