java - 从 spring mvc Controller 返回 json 对象列表

标签 java json spring rest spring-mvc

我想从 spring Controller 返回 json 对象列表并在 View 中使用它,但它返回空列表! 我不明白这个问题。 我在 分钟 Controller 中创建 Activity 对象并将其作为 json 返回。但我无法使用 jquery 获取它的形式。 但当我尝试 localhost:8080/FitnessTracker5/activities.json 时,我可以在浏览器中看到正确的结果。 我的服务器是 glassfish

addMinutes.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
    <%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
    <html>
    <head>
      <title>Add Minutes Page</title>
      <script type="text/javascript" src="/WEB-INF/pages/jquery-3.1.0.js"></script>
      <script type="text/javascript">
        $(document).ready(
                function(){
                 $.getJSON('localhost:8080/FitnessTracker5/activities.json' , {

                    ajax:'true'
                  }
                  ,
                  function(data){
                    var html = '<option value="">please select one--</option>'
                    var len = data.length;

                    for(var i=0 ; i<len ;i++){
                      html += '<option value="' + data[i].desc + '">'
                      +data[i].desc+ '</option>' ;
                    }
                    html +='</option>';
                  $('#activities').html(html);

                  });
                });

      </script>
    </head>
    <body>
    <h1>Add Minutes Excersisedddd:</h1>


    Language:<a href="?language=en">English</a> | <a href="?language=fa">Persian</a>
    <form:form commandName="exercise">

      <table>
        <tr>

          <td><h1><spring:message code="goal.text"/> </h1> </td>
          <td> <form:input path="minutes"/></td>
          <td>
            <form:select  id="activities" path="activity"></form:select>
          </td>

        </tr>


      </table>
    </form:form>



    </body>
    </html>

Activity .java

public class Activity {
    private String desc ;
    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }


}

MinutesController.java @ Controller

public class MinutesController {

    @RequestMapping(value = "/addMinutes")
    public String addMinutes(@ModelAttribute("exercise") Exercise exercise){
        System.out.println("exercise" + exercise.getMinutes());
        System.out.println("exerciseeeee" + exercise.getActivity());
        return "addMinutes" ;
    }

    @RequestMapping(value = "/activities" , method = RequestMethod.GET)
    public @ResponseBody List<Activity> findAllActivities(){
        System.out.print("ACCCCCCCCCCCCCCCCCCCCc");
    List<Activity> activities = new ArrayList<Activity>();

        Activity run = new Activity();
        run.setDesc("Run");
        activities.add(run) ;

        Activity bike = new Activity();
        bike  .setDesc("Bike");
        activities.add(bike) ;

        Activity swim = new Activity();
        swim.setDesc("Swim");
        activities.add(swim) ;

        return activities;


    }

    @RequestMapping(method=RequestMethod.GET, value ="/test")
    public @ResponseBody Activity getMovie( ){

        Activity activity =     new Activity();
        activity.setDesc("aaaaa");
        return activity;
    }
}

最佳答案

从上面的评论看来,问题是无法加载 JQuery,这可能是由于调度程序 servlet 配置错误造成的。您可以尝试从 CDN 访问 jquery:

<script type="text/javascript" src="//code.jquery.com/jquery-3.1.0.min.js"></script>

如果您想从应用程序中提供 jquery,您应该在 google 中搜索“提供 Spring MVC 静态资源”:)

并将http://添加到url

 $.getJSON('http://localhost:8080/FitnessTracker5/activities.json' , {

关于java - 从 spring mvc Controller 返回 json 对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39071986/

相关文章:

java - 如何在 eclipse RCP 中弄脏编辑器

python - 使用python从列表中提取Json数据

javascript - 为什么我的 Rails Controller 需要来自 format.js 调用的 JSON?

java - 安全 AJP 连接器不呈现

用于处理视频的 Java 库 - 手势分析

java - 新的日志文件没有生成?

json - Angular : Pass JSON Parameter to Controller for filtering

java - Spring MVC Controller 预处理请求体

java - Spring MVC 一步一步进入 Maven

java - JUnit 异常处理不起作用