2016-11-29 18 views
1

jspの完全な初心者。私のプロジェクトでは、javaからjavascriptにarraylist/arrayを送る必要があります。jspを使用してjavaからjavascriptにデータを送信

これはjspのJavaコードです。

<%@ page import="java.util.List" %> 
<%@ page import="java.util.ArrayList" %> 
<% List<String> strList = new ArrayList<String>(); 
strList.add("one"); 
strList.add("two"); 
strList.add("three"); %> 

私のjavaScriptには、以下のようなものが必要です。

$(document).ready(function() { 
    var notes = ["one", "two", "three"]; 
}); 

どのようにデータをjavaからjavascriptに送信するのですか?具体的にしてください。前もって感謝します。クライアント側では

+0

私は完全にあなたの質問を取得するかどうかを知っているが、ちょうどそれがJavaスクリプトコードが同じJSPページにあるある知りたいと思っていないのですか? Arraylistの値をjavascriptコードで正しく使用したいのですか? – Bilal

+0

@Bilal正確に。 Titusからの答えは、javaからjavascriptにデータを送信しません。 – vkosyj

+0

<%List を送信して何を意味するのかわからない、これを試してください。strList = new ArrayList (); strList.add( "one"); strList.add( "two"); strList.add( "three"); %> ます。 Bilal

答えて

2

javascriptブロックでjavaコードを使用するには、この1つを試してください。私はこのコードをJSPページで使用して、値の配列をメモ帳1,2,3などあなたが同じものか他のものを探しているかどうかはわかりません。

<% List<String> strList = new ArrayList<String>(); 
    strList.add("one"); 
    strList.add("two"); 
    strList.add("three"); %> 

    <script type="text/javascript"> 

    $(document).ready(function() { 

     var notes = new Array(); 
     <% 
     for(String note:strList){ 
     %> 
     notes.push('<%=note%>'); 
     <%}%> 
     alert(notes); 
    }); 
    </script> 

これは私の完全なJSPページのコード

<%@page import="java.util.ArrayList"%> 
<%@page import="java.util.List"%> 
<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 
<script 
    src="https://code.jquery.com/jquery-2.2.4.min.js"></script> 
</head> 

<% List<String> strList = new ArrayList<String>(); 
strList.add("one"); 
strList.add("two"); 
strList.add("three"); %> 

<script type="text/javascript"> 

$(document).ready(function() { 
    var notes = new Array(); 
    <% 
    for(String note:strList){ 
    %> 
    notes.push('<%=note%>'); 
    <%}%> 
    alert(notes); 
}); 
</script> 
<body> 

</body> 
</html> 
+0

私はそれを実行しますが、何らかの理由でアラートが生成されません。 – vkosyj

+0

私はサンプル用に作成した私の完全なJSPページで答えを編集しましたが、同じものが欲しいかどうかはわかりませんが、このコードはシステム上で実行されていて、値を出力しています。 – Bilal

+0

これは非常に役に立ちます。私は1つの質問をお願いしますか?私はノートがすべての要素を持っていることを確認したい、私はノートの配列を横断しようとします。だから、私はalert()メソッドの直前に "それぞれの(ノート内のvarアイテム){"を追加しますが、エラーが出ます。なぜjsコードを書くことができないのかわかりません。ありがとう – vkosyj

2

ビラル

<%@ page import="java.util.List" %> 
<%@ page import="java.util.ArrayList" %> 

<html> 
    <body> 

    <% List<String> strList = new ArrayList<String>(); 
strList.add("one"); 
strList.add("two"); 
strList.add("three"); %> 

<script type="text/javascript"> 

$(document).ready(function() { 

    var notes = new Array(); 
    <% 
    for(String note:strList){ 
    %> 
    notes.push('<%=note%>'); 
    <%}%> 
    alert(notes[0]); 
}); 
</script> 


</body> 

から


ソリューションは、JavaScriptコードが実行されるコンテキストでは、Javaコードはすでに、コンパイルを実行し、HTMLに変換し、 CSSまたはJavaScript。できることは、JavaコードでJavaScriptコードを作成することです。

<%@ page import="java.util.List" %> 
<%@ page import="java.util.ArrayList" %> 
<%@page contentType="text/html"%> 
<% List<String> strList = new ArrayList<String>(); 
    strList.add("one"); 
    strList.add("two"); 
    strList.add("three"); 
    out.println("<script>"); 
    out.print("var notes = ["); 
    boolean first = true; 
    for(String str: strList){ 
     out.print((first?"":",") + "\""+str+"\""); 
     first = false; 
    } 
    out.print("];"); 
    out.println("alert(notes[0]);"); 
    out.println("</script>"); 
%> 

上記の例では、strListリストからすべてのString Sが含まれていますJavaScript配列の定義と初期化を含む新しいHTML script要素を作成します。

別の解決策は、AJAXを使用してJavaScriptコードからjspページに接続してデータを取得することです。

+0

ありがとうございます。今メモにアクセスできるかどうかはわかりません。あなたのコードの直後に、私はalert(notes [0])を使用しますが、アラートを生成しません。そして、これを使ってノートをどのように初期化するのですか?ありがとうございました。 – vkosyj

+0

** JavaScriptからjspページに接続するためにAJAXを使用してください** –

+0

@vkosyj私は 'alert(notes [0])'呼び出しを含むように私の答えを編集しました。私の例は、いくつかのHTMLコードを生成することです。 'out.print(...)'と 'out.println(...)'呼び出しは、生成されるHTMLファイルにテキストを書くだけです。 – Titus

関連する問題