質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

3067閲覧

Javascriptのload関数で渡した変数がLjava.lang.Stringになってしまう

toon

総合スコア26

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/11/14 01:46

編集2017/11/14 02:44

###前提・実現したいこと
Javascriptのload関数でサーブレットに遷移し、渡した変数を使用したい

###発生している問題・エラーメッセージ
変数を渡すとLjava.lang.Stringという形式になってしまいStringに変換できません。

###エラーメッセージ

java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String

###該当のソースコード

Javascript

1var value = document.getElementById("test").value; 2$("#reading").load("/home/Check",{value:"test"},function(){ 3});

Java

1Map aaa = request.getParameterMap(); 2Iterator it = aaa.keySet().iterator(); 3String iit = (String)it.next(); 4String test = (String)aaa.get(iit);

###試したこと
下記ソースに変更して試しましたがうまくいきませんでした。

Javascript

1$("#reading").load("/home/Check",{value},function(){ 2}); 3 4$("#reading").load("/home/Check",{value:value},function(){ 5});

###追記
Javascriptで取得したvalueをload関数の第二引数({value:"test"}部分)に入れて
サーブレットに渡し、サーブレットでvalueを使用したいと考えています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

var value = document.getElementById("test").value;

$("#reading").load("/home/Check",{value:"test"},function(){
});

上記ではどこにも変数の受け渡しがされていませんし、いまいち何がやりたいのかわかりません
こんな感じではどうでしょうか?

$("#reading").load("/home/Check",{value:$("#test").val()},function(){ });

そもそもid=testがvalueプロパティをもっているかも例示の内容ではわかりません

投稿2017/11/14 01:52

yambejp

総合スコア114829

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toon

2017/11/14 02:06 編集

ご回答ありがとうございます。 valueをloadの第二引数のところに入れてサーブレットに渡したいと考えています。 valueが文字列を取得できていることは確認しました。 記載していただいたソースを試しましたが、質問文と同じくLjava.lang.Stringの値が渡っていました
yambejp

2017/11/14 02:07

そうなると普通にid=testのタグがおかしいのでは?
toon

2017/11/14 02:10

alert(value);で期待している値を取得できることが確認できていますが、yambejp様の質問に対する答えとして間違ってないでしょうか?
toon

2017/11/14 02:13

質問内容がわかりにくいということでしたので質問分の末尾に追記させていただきました。
yambejp

2017/11/14 02:16

> 文字列を渡す分には問題ないのですが、変数を渡すとLjava.lang.Stringという形式になってしまい もう一度何ができて何ができないのかはっきりさせて下さい ・{value:"test"}とした場合、testが受け渡せるのは確認できている? ・var test="hoge"として、{value:test}とした場合、hogeが受け渡せない? ・{value:$('#test').val()}とした場合、id=testの値は受け渡せない?
toon

2017/11/14 02:43

・{value:"test"}とした場合、testが受け渡せるのは確認できている? →これに関しては私の記憶違いでした。 サーブレットでgetParameterNamesを使いパラメータ名をのvalueを取得できたことを勘違いしていました。 ・var test="hoge"として、{value:test}とした場合、hogeが受け渡せない? →渡ってはいますがLjava.lang.String形式になっています。 ・{value:$('#test').val()}とした場合、id=testの値は受け渡せない? →この書き方は理解できていませんが、上記と同様で渡ってはいますがLjava.lang.String形式になっています。
yambejp

2017/11/14 02:59

> サーブレットでgetParameterNamesを使いパラメータ名をのvalueを取得できたことを勘違いしていました。 なるほど、getParameterNames("value")で「test」は拾えると考えてよろしいですね? その上でvar test="hoge"として、{value:test}とした場合getParameterNames("value")では hogeは拾えていませんか?
toon

2017/11/21 04:24

原因は別のところにあり、自己解決することができました。 自己解決のきっかけになったこの回答をベストアンサーに選ばせていただきました。
guest

0

ごめんなさい、スレッド間違えました

投稿2017/11/14 02:56

編集2017/11/14 02:59
yambejp

総合スコア114829

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問