2

JSP では、以下のコードを使用してアクション クラスから JSON を取得できます。Ajaxを使わずにアクションクラスからレスポンス(JSON)を受け取る方法があれば誰か教えてください。

$.ajax({
url:"/StrutsExample1/helloWorld.do",
data:params,
type: "post",
dataType:"json",
success:function(response){
          $.each(response,function(i){  
              $.each(response[i],function(key,value){
                 $('#info').html(key+" "+value);})
           })
},
    error:  function(e){ alert("fail " + e);}                   
})

アップデート:

次のコードはアクション クラスで使用されます。

response.setContentType("text/json; charset=utf-8");
JSONObject json = createJsonObject();  //to construct the JSON
PrintWriter out = response.getWriter();
out.print(json);
out.flush();
return mapping.findForward("success");

struts-config.xml では、アクション マッピングに次のものがあります。

<action path="/helloWorld" type="test.action.HelloWorldAction" name="helloWorldForm">
<forward name="success" path="/index.jsp" />

次に、JSP ファイルでは、上記のように Ajax 呼び出しを使用する代わりに、次のようになります。

$(function(response){
   $.each(response,function(i){ 
              $.each(response[i],function(key,value){
                 $('#info').html(key+" "+value);})
           })
})

ただし、キーと値は実行時に未定義です。JSON はアクション クラスで適切に構築されました。JSON を jsp に渡す方法を教えてください。

4

1 に答える 1

-1

はい。通常の方法で行うことができます。ページを送信すると、アクション クラスに到達し、応答を次のように設定できます。

response.setContentType("application/json");
于 2013-10-30T07:34:02.603 に答える