[解決済み] JSPをjavascriptに埋め込むには?
質問事項
JSPでデータベースを読み込むプロジェクトを行っていますが、そのデータはjavascriptでgoogleマップ(地図上の点)を描画するために使用されています。javascriptでNoSQLデータベースにアクセスする方法が分からないので、javascriptにJSPを埋め込んでデータにアクセスし、javascriptにデータを供給する方法として考えています。
この機能についていろいろ検索してみたんですが、こんな感じのコードが欲しいです。
var a = <%=data %>
スクリプト(.js)とindex.jspを制御するにはどうしたらいいでしょうか?
ありがとうございます。
解決方法は?
Javaコードはサーバー上で動作します。つまり、アプリケーションサーバー上で動作し、ビュー(この場合、JSP)のレンダリングを支援します。JavaScriptはクライアント側で実行されます。つまり、クライアントのブラウザ(Internet Explorer、Firefox、Chrome、など)上で実行されます。というわけで、現在のコードからすると
var a = <%=data %>;
仮定の話
data
は
String
という値を持ち
"Hello World"
の場合、生成されるHTML/JSは次のようになります。
var a = Hello World;
というエラーが出ます。そこで、変数を引用符で囲む必要があります。
var a = '<%=data %>';
これで、生成されます。
var a = 'Hello World';
リストや複雑な構造体、複雑な構造体のリストをサーバーからクライアントに渡すような、より複雑な通信の場合は、JSONのようなデータ交換のための共通のフォーマットを使用する方がよいでしょう。サーバからJSON文字列にデータをマーシャルして(できればServletの中で)、それをJavaScript側に簡単に渡すことができるのです。例えば、JavaのJackson Libraryを使うなど。
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
List<ComplexObject> complexObjectList = ... //get your data
request.setAttribute("complexObjectList", OBJECT_MAPPER.writeValueAsString(complexObjectList));
//forward to the desired view...
request.getRequestDispatcher("/WEB-INF/theView.jsp").forward(request, response);
}
}
そして、JSPで ( 表現言語 というのも スクリプトレットの使用は避けてください。 ):
<script type="text/javascript">
var complexObjectList = JSON.parse('${complexObjectList}');
//play with your new object in JavaScript side...
</script>
関連
-
[解決済み】webpack: モジュールが見つかりません。Error: 解決できない(相対パスで)
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】このエラーの原因は何ですか - "Fatal error: ローカルgruntを見つけることができません"
-
[解決済み】 Uncaught TypeError: data.push is not a function
-
[解決済み】SecurityError: オリジンを持つフレームがクロスオリジンフレームにアクセスするのをブロックした
-
[解決済み】別のjsファイル内でJavaScriptの関数を呼び出す
-
[解決済み】ある要素を別の要素に移動させるには?
-
[解決済み】JavaScriptのボタンonclickが機能しない
-
[解決済み】TypeError: res.status は関数ではありません。
-
[解決済み] Uncaught (in promise) TypeError: フェッチに失敗してCorsエラー
-
[解決済み】Javascript、[オブジェクトHTMLInputElement]を表示中。]
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?