当前位置: 首页 > 知识库问答 >
问题:

Spring控制器不将JSON数据返回到angular http GET调用

孙阳舒
2023-03-14
@RestController
public class RaceResultController {

    @Autowired
    RaceResultImpl raceResultImpl;

    @GetMapping("/race")
    public ModelAndView hello(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {

        List<RaceTopResult> raceTopResultList = raceResultImpl.getResults();
        ObjectMapper o = new ObjectMapper();
        model.addAttribute("races", raceTopResultList);
        return new ModelAndView("race");


    }
}
      <head>
        <title>F1 RESULTS 2018</title>
         <script 


      src=
    "https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"> .    
     </script>
      <script 
       src=
    "https://ajax.googleapis.com/ajax/libs/angularjs/1.7.5/angular.min.js"></script>
     </head>
     <body>
     <header>
        <h1>F1 RESULTS 2018</h1>
     </header>
      <div ng-app="raceApp" ng-controller="raceCtrl">
        <table id="my_table" border = "1">
            <tr ng-repeat="race in races">
                <td>{{ race.driver }}</td>
                <td>{{ race.team }}</td>
            </tr>
        </table>
     </div>

    </body>

    <script>
        var app = angular.module('raceApp', []);
        app.controller('raceCtrl', function($scope, $http) {
            alert("mini");
            $http({
                url: "/race",
                method: "GET",
                dataType: 'json'
                 }).then(function successCallback(response) {
                alert("hi")
                 $scope.races = response.data;
                 }, function errorCallback(response) {
                 alert("bye");
                 $scope.error = response.statusText;
                 });
                   });
                 </script>

谢谢

共有1个答案

龙星渊
2023-03-14

如果您希望获得json reponse回来,请执行以下操作

@GetMapping("/race")

    public List<RaceTopResult> hello(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {

        List<RaceTopResult> raceTopResultList = raceResultImpl.getResults();
        //ObjectMapper o = new ObjectMapper();
        //model.addAttribute("races", raceTopResultList);
        return raceTopResultList;


    }

如果在类路径中有jackson依赖项,则上面的结果将自动转换为json,如果出现任何错误,请在maven依赖项中查找jackson

如果您想用模型数据返回html视图,请使用以下命令

@Controller //use controller not RestController
public class RaceResultController {

    @Autowired
    RaceResultImpl raceResultImpl;

    @GetMapping("/race")
    public ModelAndView hello(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {

        List<RaceTopResult> raceTopResultList = raceResultImpl.getResults();
       // ObjectMapper o = new ObjectMapper();
        model.addAttribute("races", raceTopResultList);
         return new ModelAndView(model,"race");


    }
}
 类似资料:
  • 问题内容: 我试图创建一个服务来获取json并将其传递给我homeCtrl我可以获取数据,但是当将其传递给我的homeCtrl时,它总是返回undefined。我卡住了。 我的服务: 我的家庭控制器: 问题答案: 您应该从函数返回promise ,当它被解析后,它应该从该函数返回。 厂 同样在控制器内部,您应该调用factory函数,并在service函数解析该调用并将其分配给 码

  • 我正在编写一个Spring Boot应用程序。我编写了一个简单的控制器,每当endpoint被命中时就会被调用,但它仍然返回状态404,而不是指定的返回值。 HelloController 现在,每当我调用时,我都会看到控制台日志,但是永远不会返回。邮递员输出: 应用JAVA

  • 问题内容: 我试图通过传递一些参数的AJAX调用MVC控制器动作。 我有时 在此应用程序中执行此操作 ,并且效果很好。 我不知道为什么只有 这一个 无效。 这是我的控制器方法: 提醒一下,我正在做我在其他Ajax调用中所做的事情,但是特别是 只有这一条 不起作用。 有人有什么主意吗? 问题答案: 始终使用或html helper方法来构建操作方法的url。无论您当前的页面/路径如何,它都会正确构建

  • 我试图创建一个Spring Rest控制器,基于这个例子我创建了一个这样的控制器。 DeveloperRestController.java web.xml dispatcher-servlet.xml 但是它显示404页没有找到,似乎是spring试图加载一个模板... 结果: 错误404/we b-INF/JSP/developer/list . JSP 我该怎么办?

  • 你好,我是拉威尔的新手,也许这对你们来说太傻了。在laravel 8中,路由web。php我创建了一条如下的路线: 我想问的是,我们也可以从回调视图返回控制器吗?所以在路由 /editprofile中,第二个参数不是'App\Http\Controller\SiteController@edit_profile',而是一个回调函数,如路由'/home'。 但是它返回错误哈哈。假设我不想用__con

  • 如果可以从Spring返回,我很好奇 这样做可以吗?我试过了,Spring返回的不是流的值。 我应该继续返回