1

Ajaxリクエストを使用してActionから値を取得しようとしていますが、JavaScriptでstrutsタグを使用して値を表示する際に問題が発生しています。

Javascriptコード:

 dojo.xhrPost({
            url: "dashboard"
            ,content: myParameterscomp
            , handle: function(response, ioargs) {

               if (ioargs.xhr.status == 200)
               {
                   var data = "<s:property value='#request.consumptionData'/>"
                   console.log(data);
               }

             }

            ,error: function (data) {
                handleError(data.description);
            }           
        });

Javaコード:

Map request = (Map)context.get("request");
 request.put("consumptionData",  43);

43<s:property value='#request.consumptionData'/> ではなくコンソールのデータの値を取得しています。struts2を使用しています。私のJavaScriptコードはJSPファイルにあります。誰かが私に価値を示す方法を教えてもらえますか?

4

2 に答える 2

1

ホームページからAjax経由で/dashboardページを呼び出しているようです。そして、それがリクエスト属性consumationDataを送信することを期待しています。JSPに必要なデータが含まれていないため、これは機能しません。データをJSPに入れてから、Ajaxで同じものをフェッチする必要があります。応答をJSONに変換します。これを行う最も簡単な方法は、Ajax応答JSPに次のようなコードを入れることです。

Dashboard.jsp

{"consumptionData": < "<s:property value='#request.consumptionData'/>"}

また、メインページでajaxを介してこのJSPを読み込むと、このJSON出力を解析してJavascriptでデータを使用できます。

var json = JSON.parse(response);
var data = eval(json.consumptionData);
于 2012-12-17T10:00:47.010 に答える
0

ブラウザのコードはJSONを受け入れます。リクエストをJSONとしてシリアル化し、JavaScriptファイルに埋め込むことができます。例えば:

var data = <%= toJson(request.get("consumptionData")) %>

データが単純Integerな値である場合は、コードに値を直接入力することもできます。

var data = <%= request.get("consumptionData") %>

構文はさまざまですが(strutsタグに精通していません)、考え方は同じです。

于 2012-12-17T09:09:41.173 に答える