【问题标题】:Circular View Path exception圆形视图路径异常
【发布时间】:2017-09-12 04:10:26
【问题描述】:

我正在尝试使用 Angular 和 Spring Boot 创建一个简单的用户创建程序。在用户创建部分,我遇到了异常:循环视图路径 [createUser]:将再次分派回当前处理程序 URL [/createUser]。检查您的 ViewResolver 设置! (提示:由于默认视图名称生成,这可能是未指定视图的结果。)。

我在堆栈溢出中看到了与同一问题相关的多个答案,但我无法解决这个问题。

附上代码:

        @RequestMapping(value="/createUser",method=RequestMethod.POST,consumes = MediaType.APPLICATION_JSON_VALUE)
public void createUser(@RequestBody String user) throws JsonParseException, JsonMappingException, IOException{
    ObjectMapper mapper=new ObjectMapper();
    User userObj=mapper.readValue(user, User.class);
    UserFunction uf = new UserFunction();
    uf.createUser(userObj);
}

网页:

    <body>
<div ng-app="MyApp" ng-controller="MyCtrl as ctrl">
    <form ng-submit="createUser()" name="myForm">
        <table>
            <tr>
                <td>Id</td>
                <td><input type="text" ng-model="user.id" value="user.id">
            </tr>
            <tr>
                <td>Name</td>
                <td><input type="text" ng-model="user.name" value="user.name">
            </tr>
            <tr>
                <td>Age</td>
                <td><input type="text" ng-model="user.age" value="user.age">
            </tr>
            <tr>
                <td></td>
            </tr>
        </table>
        <input type="submit">
        <h2>Id: {{user.id}}</h2>
    <h2>Name: {{user.name}}</h2>
    <h2>Age: {{user.age}}</h2>
    </form>
</div>

<script>
    var app = angular.module("MyApp", []);
    app.controller("MyCtrl", function($scope, $http) {
        $scope.user = {
            name : "",
            id : 0,
            age : 0
        };
        $scope.createUser = function() {
            var data=JSON.stringify($scope.user);

            $http.post("/createUser", data).then(function() {
                alert("User created");
            }, function() {

            })
        }
    })
</script>

从论坛中对这个问题的回答中,我了解到我必须对配置进行一些更改,但是在哪里进行这些更改。我无法理解。 请帮忙。 提前致谢!

【问题讨论】:

  • 您希望创建用户请求在uf.createUser (...) 进程之后结束?
  • 我希望用户重定向到 User.html 页面

标签: angularjs spring spring-mvc spring-boot


【解决方案1】:

将控制器功能更改为后问题解决:

   @RequestMapping(value="/createUser",method=RequestMethod.POST,consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody ResponseEntity createUser(@RequestBody String user) throws JsonParseException, JsonMappingException, IOException{
    ObjectMapper mapper=new ObjectMapper();
    User userObj=mapper.readValue(user, User.class);
    UserFunction uf = new UserFunction();
    uf.createUser(userObj);
     return new ResponseEntity(HttpStatus.OK);
}

【讨论】:

    【解决方案2】:

    在这里,您的视图解析器不知道在执行createUser 方法后实际将控件重定向到哪里。正如@Jayant 所说,尝试在createUser 方法中添加@ResponseBody,以便视图解析器不会寻找重定向页面,而是将响应原样发送到调用位置。

    【讨论】:

      猜你喜欢
      • 2016-06-28
      • 1970-01-01
      • 2017-07-02
      • 2012-05-20
      • 2013-09-19
      • 2019-01-21
      • 2020-12-25
      • 2018-01-12
      • 2019-03-07
      相关资源
      最近更新 更多