1

我正在使用 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 函数并创建 html 元素来在 jsp 上显示这个 JSON 对象,但我不想这样做。那么是否可以直接将 JSON 传递给<s:iterator>tag 呢?

4

2 回答 2

1

在与@Aleksandr 讨论时,我找到了答案。我将其发布在这里,以便任何面临相同问题的人都可以从中获得帮助。

<s:iterator>标记我们不能传递 JSON 对象,它根本不需要。我必须实现的是进行 ajax 调用并将结果传递给<s:iterator>.

所以不需要使用 Struts2 json 插件。只需使用dispatcherStruts2 中返回 html 的默认结果类型的动作。简单的步骤是

  1. 创建单独的 JSP 页面,说List.jsp它将包含<s:iterator>我们将传递结果的标签(即List<myModel>在我的例子中)。

  2. 将此List.jsp作为我们操作的结果页面,如下所示。

    <s:action name="myAction" class="package.MyClass">
        <result name = "success">List.jsp</result>
    </s:action>
    
  3. 因此,在进行 ajax 调用时,我们将得到List.jsp(即 html)作为响应。只需将此响应数据添加到div您想要的任何内容中。

而已。

于 2014-05-06T05:48:41.483 回答
0

首先,您需要获取“mylist”对象,然后您需要遍历“myList”,然后再次使用 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>  
于 2014-09-18T09:26:51.967 回答