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

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

新規登録して質問してみよう
ただいま回答率
85.46%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

2回答

5551閲覧

配列の値をJSPからJavaScriptに渡したい

mink.

総合スコア7

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/08/06 02:43

JSPからJavaScriptに配列の値を渡したいです。
正確にはservletの配列情報をJSPに渡し、そのあとjavaScriptに渡したいです。

配列coin[]があり、servletからJSPには次のような形で渡すことができました。
配列の0番目の要素を取得${coin[0]}

JSPからjavaScriptへの値の引き渡しは次のようにして実行してみましたが、javaScriptのほうで値がundefindになってしまい、値を受け取ることができません。
JSP↓

<input type="hidden" name="coinName" value="${coin}">

javaScript↓

var coin = $('input:hidden[name="coinName"]').val(); console.log(coin[0]);

ネットに乗っている情報も調べられるかぎり調べて試してみたのですが、解決できませんでした、、、
JSPからjavaScirptへの配列の引き渡しはできないのでしょうか。。
やるとしたら、javaでJSONに変換し、javaScriptでJSONを受け取るしかないのでしょうか。。よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

$(document).ready(function(){ var coin = $('input:hidden[name="coinName"]').val(); console.log(coin); });

でどうでしょう?
症状から、inputタグが読み込まれる前に、JavaScriptを実行していると予想できます。
jQueryで

$(document).ready(function(){ 処理 });

としてあげると、ブラウザがhtmlをすべて読み込み終わってから処理をしてくれます。

投稿2021/08/06 21:36

TetsujiMiwa

総合スコア1124

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

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

0

※今JSPを試せる環境がない&JSPはほぼ触れていませんのでJSP自体の問題はわかりません


1: JSPから配列ではなく値${coin[0]}を渡し、Javascriptで単純な値として受け取った場合は問題有りませんか?
→そもそものやり方が間違っていないかの確認です


2: 今の配列を渡す形で、Javascriptでcoinそのものconsole.log(coin)を表示した場合はどうなっていますか?
→空文字が表示されているような気がします


ただ、inputのvalue属性は文字列なので、配列が正しく渡せたとしてもJavascriptでJSON.parseをする必要がありそうです。

やるとしたら、javaでJSONに変換し、javaScriptでJSONを受け取るしかないのでしょうか。。よろしくお願いいたします。

このやり方が一番確実かと思われます。

投稿2021/08/06 06:32

編集2021/08/06 06:34
k4a

総合スコア983

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問