【问题标题】:Spring MVC @ResponseBody , JSON, JSP. Trying to Return List<Objects> from Controller to JSPSpring MVC @ResponseBody,JSON,JSP。试图将 List<Objects> 从控制器返回到 JSP
【发布时间】:2013-04-24 04:40:29
【问题描述】:

我需要从 Spring MVC Controller 类中检索 JSON 数据对象列表,以便使用 Ajax 在 JSP 中显示它。

我已经编写了返回 JSON 对象列表的 Spring MVC 控制器类。

我无法理解如何在 JSP 中显示这些对象列表。

当我点击 /shop url 时,我可以在浏览器中看到 JSON 数据。

问题在于我无法检索数据的 JSP。 这里是 index.jsp

 <script type="text/javascript">
     function load() {
     $.ajax({
              type: "GET",
              contentType: "application/json",
              dataType: "json",
              url:        "/SpringMVCWithJSON/shop", //url to get list of json data.
              success:    function(msg) {
              var m=msg;
              var json = m ,
              obj = JSON.parse(json);
              for(var i=0;i<obj.length;i++){
              var name= obj[i].name;
          alert(name);
}
     });
    </script>

请建议我如何使用 AJAX 显示从 Spring MVC 控制器到 JSP 的 JSON 对象列表。

感谢高级版。任何建议/更正都会对我有所帮助。

【问题讨论】:

    标签: javascript ajax json jsp spring-mvc


    【解决方案1】:

    试试这个:

    <script>
    function load() {
      $.ajax({
        type: "GET",
        contentType: "application/json",
        dataType: "json",
        url: "/SpringMVCWithJSON/shop",
        success: function(data) {
          for (var i = 0; i < data.length; i++) {
            alert(data[i].name);
          }
        },
        error: function(data){
          alert(data);
        }
      });
    }
    </script>
    

    您的代码中花括号的关闭似乎有问题。

    【讨论】:

      【解决方案2】:

      在您的控制器中:

      @RequestMapping(value = "/shop", method = RequestMethod.GET, headers = "Accept=application/json")
      public List<Object> myJsonReturningMethod{.....}
      

      在您的 javascript 中删除以下行:

      obj = JSON.parse(json)
      

      【讨论】:

      • 能否提供返回类?
      • 公共类 Shop { String name;字符串人员姓名[]; public String getName() { 返回名称; } public void setName(String name) { this.name = name; } public String[] getStaffName() { return staffName; } public void setStaffName(String[] staffName) { this.staffName = staffName; } public Shop() { } } 我有这个 Shop 类的返回列表。我无法理解如何在 javascript 中迭代这个 json 对象列表。我怎么能在警报中简单地看到这些数据?在循环中。
      • 我如何迭代其中的数据?
      • 我以 JSON 格式获取数据,例如 [{"name":"sample","staffName":["a1","V1"]},{"name":"sample", "staffName":["a2","V2"]},{"name":"sample","staffName":["a3","V2"]}]
      • 在浏览器中输入url时,浏览器发出http请求,responseText由浏览器处理(本例显示)。但是,当您使用 ajax 时,响应将作为参数传递给您的 javascript 成功方法。因此,您的控制器方法的 JSON 响应成为“数据”
      猜你喜欢
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      • 2012-12-08
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      相关资源
      最近更新 更多