圆形视图路径异常

时间:2017-04-16 10:36:28

标签: angularjs spring spring-mvc 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>

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

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

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