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

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

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

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

JavaScript

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

Q&A

解決済

2回答

4011閲覧

jspの条件式の中でJavascriptの変数を使う方法

nyan-chu

総合スコア18

JSP

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

JavaScript

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

0グッド

0クリップ

投稿2019/02/18 08:54

前提・実現したいこと

jspの条件式の中でJavascriptの変数を使いたいです。

発生している問題・エラーメッセージ

EL式の中でJavascriptの変数を使うのは不可能なんでしょうか…
反応しません。

該当のソースコード

カレンダーを作っていてその一部のコードを載せます。

<script> theYear = nowDate.getFullYear(); document.write('<c:forEach items="${scheduleList}" var="scheduleList" varStatus="status">'); document.write('<c:if test="${scheduleList.startYear == ' + theYear + '}">'); document.write('<span class="suchedule">'); document.write('<i class="fas fa-times red" data-toggle="modal" data-target="#delete${status.index}"></i>'); document.write('<a href="updateSchedule/${scheduleList.id}">'); document.write('<span style="margin-left:7px;">${scheduleList.startTime}~${scheduleList.endTime} '); document.write('${scheduleList.schedule}</span></span>'); document.write('</a>'); document.write('</c:if>'); document.write('</c:forEach>'); </script>

補足情報(FW/ツールのバージョンなど)

theYearが${scheduleList.startYear}と一致した場合に${scheduleList}の詳細が表示されるようにしたいのですが、if文の中の条件が機能していません。
ちなみにその下に

<p>' + theYear + '</p>

を書いたのですが、表示は出来たのでおそらくif文の中に入れると機能しないのかと思われます。

いろいろ調べてはみたのですが、機能させるためのすべが分からず質問させて頂きました。
全コードはおそらく必要ないかと思い載せていませんが必要でしたら載せます。

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

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

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

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

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

guest

回答2

0

JSPが実行された結果をブラウザで表示し、その上でJavaScriptが動きます。
その逆は不可能です。

そもそも「年」を取得することはJavaでもできると思うのですが、そうしない理由があるんでしょうか?

投稿2019/02/18 10:09

mather

総合スコア6753

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

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

nyan-chu

2019/02/19 00:01

初心者ですのでJavascriptのカレンダーのコードをネット拾ってきて、そこにjspのコードを足して使っているので「年」の取得等は分かりません。ありがとうございます。
guest

0

ベストアンサー

JSPはサーバ側でコンパイル・実行されますが、Javascriptはブラウザ側で実行されます。
つまり、<c:forEach>とか<c:if>のようなJSPのタグは、上記のようにJavascript内に書いても意図どおりには動作しないです。

どちらかというと、サーバ側で生成した結果の変数などを、Javascriptの中に埋め込む方がうまく行くと思います。

投稿2019/02/18 09:14

kabao

総合スコア648

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

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

nyan-chu

2019/02/19 00:02

<c:forEach>や<c:if>だけ使えないのが疑問でしたがそういうことだったのですね。納得しました! 早速試してみます。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問