2014-06-12 51 views
3

我使用以下AJAX功能:如何使用ajax響應列表作爲struts2迭代器值?

$.ajax({ 
     url: "userhomeonload", 
     contentType: 'application/json', 
     type: 'POST', 
     datatype:'json', 
     async: true, 
     success: function (res) { 
       alert(res[i].name+" "+res[i].rollNo); 
    } }); 

我得到正確的結果在警告框。 現在我想用在支柱迭代器這個AJAX返回的列表如下:

<s:iterator value="list"> 
    <div> 
    <s:property value='name'></s:property> 
    <s:property value="rollNo"></s:property> 
    </div> 
</s:iterator> 

但沒有什麼是越來越顯示在屏幕上。誰能告訴我我該怎麼做?

+0

返回一個JSP,而不是JSON,並在那裏迭代。 –

+0

或使用js添加元素。 –

+0

@Andrea Ligios,我不明白你的意思。請說明你在說什麼。我該怎麼做? – user3542411

回答

1

@AndreaLigios請解釋第二種類型的結果,即JSP片段。我不知道如何使用JSP片段作爲Ajax響應。

main.jsp中(完全)

<%@ taglib prefix="s" uri="struts-tags.tld" %> 
<html> 
    <head> 
     <script> 
      $(function(){ 
       $('#loader').on("keypress click", function(e) { 
        $.ajax({ 
         url: "<s:url action='ajaxAction'/>", 
        }).done(function(result) { 
         $("#target").html(result); 
        }); 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <input type="button" id="loader" /> 
     <div id="target"></div> 
    <body> 
</html> 

struts.xml的(相關)

<action name="ajaxAction" class="foo.bar.AjaxAction"> 
    <result>Snippet.jsp</result> 
</action> 

AjaxAction(相關)

private String testString; 
/* Getter and Setter */ 

public String execute(){ 
    testString = "I'm loaded with AJAX"; 
    return SUCCESS; 
} 

Snippet.jsp(完成)

<%@ taglib prefix="s" uri="struts-tags.tld" %> 

<!-- This is the result page. You can use Struts tags here, 
the generated HTML will be appended to the target div. --> 

TestString: <s:property value="testString" /> 

輸出:

<body> 
    <input type="button" id="loader" /> 
    <div id="target">TestString: I'm loaded with AJAX</div> 
<body> 
+0

這是工作。我想問一個更多的問題。我的Snippet.jsp中的內容將包含在展櫃內。現在展示插件不能在Main.jsp中工作。可以向我建議任何解決方案 – user3542411

+0

很高興幫助您。我不知道展示插件是什麼,或者爲什麼它不工作(再也?)。但這聽起來像是一個全新的問題,所以我建議你打開一個新的,很好描述的問題來獲得更好的幫助 –

+0

我只是獲得「成功」而不是「我的消息」作爲我的ajax請求的響應。我的代碼看起來幾乎和上面一樣。 – kumarc

0

實際上發生了什麼景象的背後,是後您的Ajax調用你只得到了JSON對象,但「清單」的價值

<s:iterator value="list"> 

不由OGNL從valuestack映射到結果頁面,這種方法適用於你的情況,你必須使用JS來設置屬性。

由於Andrea正確地解釋了您是否將您的結果作爲JSP返回,您的操作對象的所有屬性將由OGNL映射到相應的UI標記。