首页 > 解决方案 > 圆形视图路径[问候]

问题描述

我正在使用spring-boot-starter-paren: 2.3.2.RELEASE.

这是我的代码:

package com.example.sweater;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Map;

@Controller
public class GreetingController {

    @GetMapping("/greeting")
    public String greeting(@RequestParam(name="name",
                                         required=false,
                                         defaultValue="World") String name,
                           Map<String, Object> model) {
        model.put("name", name);
        return "greeting";
    }
}

堆栈跟踪: https ://pastebin.com/wtS2ubus

问题:javax.servlet.ServletException:圆形视图路径 [greeting]:将再次分派回当前处理程序 URL [/greeting]。检查您的 ViewResolver 设置!(提示:由于默认视图名称生成,这可能是未指定视图的结果。)

我该如何调试呢?

标签: spring

解决方案


circular path exception是由于春季的默认 ViewResolvers 造成的。如果您的@GetMappingon path = 'path' 返回一个值,该值也被定义为项目中的视图(html 或等效项,即 path.html),则会发生此错误。

如以下来源所述:

默认情况下,Spring MVC 框架应用 InternalResourceView 类作为视图解析器。因此,如果@GetMapping 的值与视图相同,则请求将失败,并出现循环视图路径。

一种可能的解决方案是重命名视图并更改控制器方法中的返回值。

如果我们不想重命名视图并更改控制器方法中的返回值,那么另一种解决方案是为项目选择另一个视图处理器。

来源:https ://www.baeldung.com/spring-circular-view-path-error


推荐阅读