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

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

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

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

JavaScript

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

TERASOLUNA

TERASOLUNA(テラソルナ)はNTTデータの独自フレームワークです。 比較的大規模なシステム開発における 開発手順・フレームワーク・サポートなどの製品群により構成されています。

Q&A

1回答

869閲覧

TERASOLUNAで取得したCollectionをJavascriptに渡したいです。

nyan-chu

総合スコア18

JSP

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

JavaScript

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

TERASOLUNA

TERASOLUNA(テラソルナ)はNTTデータの独自フレームワークです。 比較的大規模なシステム開発における 開発手順・フレームワーク・サポートなどの製品群により構成されています。

0グッド

0クリップ

投稿2019/02/20 05:30

編集2019/02/20 08:43

前提・実現したいこと

題名の通りですが、TERASOLUNAで取得したCollection<List> listをJavascriptに渡したいです。Javascriptのカレンダー作成コードを拾ってきてそこにコードを足して作っているので、Javascriptを使わない方がいいのでは?等の回答はすみません(._.)とりあえず画面を作ることを優先的に考えています。

該当のソースコード

Controller.java

@RequestMapping(value = "list", method = RequestMethod.POST) public String list(listForm form, Model model) { //Javascriptに渡したいlist Collection<List> list= listService.allList(form.getId()); model.addAttribute("list", list); return "employee/list"; }

list.jsp

document.write('</a>'); document.write('<c:forEach items="${list}" var="list" varStatus="status">'); //ここにTERASOLUNAで取得したListを使ったif文をJavascriptでいれたいです document.write('<span class="list">'); document.write('<i class="fas fa-times red" data-toggle="modal" data-target="#delete${status.index}"></i>'); document.write('<a href="update/${list.id}">'); document.write('<span style="margin-left:7px;">${list.startTime}~${list.endTime} '); document.write('${list.schedule}</span></span>'); document.write('</a>'); document.write('</c:forEach>'); document.write('</td>');

試したこと

調べた結果Mapを使う方法がありましたが、うまく実装出来ませんでした。
他に方法分かる方いらっしゃいましたらよろしくお願いいたします。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/02/20 10:26

作ることを前提にしてるのに、一般的な方法を除外するならお一人でどうぞ
guest

回答1

0

JavaScriptで''なり""なりで囲んだ時点でただの文字列です。
ブラウザから「ソースを表示」で確認してみると良いです。
そもそもですが、単にHTMLを表示するだけのようですが(write()ですし)
わざわざJavaScriptを介す必要はあるのでしょうか?
普通に下記で良いのでは。

jsp

1<c:forEach items="${list}" var="list" varStatus="status"> 2//中略 3</c:forEach>

いずれにしてもJavaはサーバーサイドの処理、JavaScriptはクライアントサイドの処理です。
mapでも何でも、json encodeか何かをかけて文字列として渡すか、Ajaxで取得しにいくように作るのが通例かと思います。

投稿2019/02/20 05:41

編集2019/02/20 05:58
m.ts10806

総合スコア80852

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

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

nyan-chu

2019/02/20 05:50 編集

JavaScriptをlist.jspの他の部分で沢山使っていて、JavaScriptの変数を使ってif文を書く必要があったので質問しました。 回答ありがとうございます。
m.ts10806

2019/02/20 05:53

かなり無駄ですよ。 いずれにしてもクォートで囲ってはただの文字列なので、writeに入れないでください
nyan-chu

2019/02/20 05:56 編集

回答ありがとうございました。
m.ts10806

2019/02/20 05:58

いや、document.write()を使うこと自体が。 いずれにしてもこれだけでは判断できませんが。 回答にコード追加したんですが要らないみたいなので消しときますね。
m.ts10806

2019/02/20 06:01 編集

document.write()を使わなきゃいけないシーンって通常無いので、 どうしても使わなければならないというのでしたらそもそもの構成を見直すことを強くすすめます。 エスケープもされていないようなので脆弱性てんこ盛りです。
退会済みユーザー

退会済みユーザー

2019/02/20 10:15

(jsでjstl)w
m.ts10806

2019/02/20 10:16

見辛くて仕方ないですね。 攻撃の的にもなりそうですし。
m.ts10806

2019/02/21 01:27

document.write()使ったとしても回答内容で解決可能なんですけどね。 何も試さず諦めるとは、残念。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問