我通过使用JQuery的ajax调用获取JSON对象。 JSON对象包含模型列表(即Bean)
例如List<myModel>
我正在使用struts2 json插件。
JSON对象作为字符串如下所示。
{"myList":[{"age":26,"degree":"MCA","fname":"Pravin","id":1,"lname":"Varpe"},
{"age":26,"degree":"MCA","fname":"Pramod","id":2,"lname":"Patil"},
{"age":24,"degree":"B.E","fname":"Atul","id":3,"lname":"Vairale"},
{"age":22,"degree":"M.E","fname":"Sudeep","id":4,"lname":"Masare"},
{"age":21,"degree":"BCS","fname":"Nikhil","id":1,"lname":"Pethe"},
{"age":21,"degree":"MCS","fname":"Abhijeet","id":1,"lname":"Supekar"}]}
我想将此JSON对象传递给<s:iterator>
标记,如下所示
<s:iterator value = "myJsonObject">
<s:property value = "fname"/>
// properties
</s:iterator>
我可以通过将它迭代到jquery函数&amp;中来在jsp上显示这个JSON对象。创建html元素,但我不想这样做。那么有可能无论如何直接将JSON传递给<s:iterator>
标签吗?
答案 0 :(得分:1)
在与@Aleksandr的讨论中,我找到了答案。我在这里发帖,以便任何面临同样问题的人都能得到帮助。
要<s:iterator>
代码,我们无法传递JSON对象&amp;它根本不需要。我必须要做的是做一个ajax电话&amp;将结果传递给<s:iterator>
。
所以不需要使用Struts2 json插件。只需使用dispatcher
这是Struts2中默认的结果类型,它返回html。简单的步骤是
创建单独的JSP页面,说List.jsp
,其中包含<s:iterator>
标记,我们将传递结果(例如List<myModel>
)。
将此List.jsp
作为我们操作的结果页面,如下所示。
<s:action name="myAction" class="package.MyClass">
<result name = "success">List.jsp</result>
</s:action>
所以在进行ajax调用时,我们会得到List.jsp
(即html)作为回复。只需将此响应数据添加到您想要的任何div
。
那就是它。
答案 1 :(得分:0)
首先,您需要获得&#34; mylist&#34;对象然后你需要遍历&#34; myList&#34;然后再次使用JsonObject迭代器来获取键值对。
<s:iterator value="test.get('myList')" var="listJsonArray">
<s:iterator value="listJsonArray" var="row">
<s:iterator value="row" var="jsonObject" >
<s:property/>
</s:iterator>
</s:iterator>
</s:iterator>