2

データを .jsp ファイルにハードコーディングしました。私がやりたいことは、サーバーから送信されたデータを JavaScript 配列に取り込むことです。

別の .jsp ページからデータを送信しようとしましたが、それを自分のページで使用できるように JavaScript var に変換する方法がわかりません。JSON オブジェクトの使用も開始しましたが、続行する前にこれを行う最善の方法についてのガイダンスが必要です。

つまり、サーバーから .html または .jsp ファイルに JavaScipt 配列を取り込みます。その後、配列は Google Maps API で使用されます。

ご不明な点がございましたら、お気軽にお問い合わせください:

ありがとう

4

2 に答える 2

3

ハードコーディングされている場合は、直接 JS 変数にしないのはなぜですか?

var foo = [{
    "name1": "value1a",
    "name2": "value2a"
},{
    "name1": "value1b",
    "name2": "value2b"
}];

または、Java 側でハードコーディングされていて、JS 側でも使用する場合は、利用可能な多くの JSON シリアライザー/パーサーのいずれかを使用して Java オブジェクトを JSON に変換します。json.orgの下部に、Java で利用可能なすべての JSON API の概要が記載されています。それらの 1 つがGoogle Gsonです。たとえば、次のList<SomeBean>ように a を JSON 文字列に変換できます

String jsonString = new Gson().toJson(someBeans);

次に、リクエスト属性として保存されていると仮定して、JSP に JS 変数であるかのように出力させることができます。

var foo = ${jsonString};
于 2012-07-02T16:20:32.620 に答える
1

これは非常に簡単です。

  1. JSPが出力として正しいJavaScriptを生成することを確認する必要があります。
  2. タグ付きのJSPを含めます<script>(つまり、JSPはURLでアクセス可能である必要があります。そのURLをsrc属性に入れます)。

JSPコードの例:

var data = [<% ...generate array elements here... %>];

dataこれにより、後で実行されるすべてのJavaScriptの変数にアクセスできるようになります。あなたの場合、他のすべてのスクリプトがそれを使用できるように、ページの最初のものとしてスクリプトを含めます。

巧妙なトリック:変数名を指定するクエリパラメータを追加します。

var <%=request.getParameter("name") %> = [<% ...generate array elements here... %>];

とそれを含める

<script src="...url...?name=data" type="text/javascript">
于 2012-07-02T16:17:56.007 に答える