【问题标题】:Replacing @Controller with @RestController in Spring Boot does not show intended view在 Spring Boot 中用 @RestController 替换 @Controller 不会显示预期的视图
【发布时间】:2021-01-06 15:40:25
【问题描述】:

在针对此控制器运行测试时,我收到 Circular View Path 错误。将@Controller 替换为@RestController 可修复此错误,但现在我在视图中得到实际返回的String,而不是浏览器中显示的视图。

例如,当我将下面的@Controller 替换为@RestController 并将GET 请求映射到"/ListA" 时,控制器方法会在浏览器中返回字符串ListA,正如您所看到的打印内容浏览器是字母 ListA 和我的所有输入、按钮、表格的视图都没有显示。

我在这里错过了什么?

 @RestController
 @RequestMapping
 public class WebController {
    
      @GetMapping("/ListA") 
      public String viewListAController() {
          
          return "ListA";

      }

      @GetMapping("/ListB") 
      public String viewListBController() {
          
          return "ListB";

      }
 }  

【问题讨论】:

    标签: spring-boot spring-mvc thymeleaf


    【解决方案1】:

    @RestController 简化了 RESTful Web 服务的创建。这是一个结合了@Controller 和@ResponseBody 的便利注解。

    如果您使用它,它会将响应转换为 JSON 对象格式。这就是为什么你是 在浏览器中获取字符串作为文本,而不是视图。

    【讨论】:

    • 好的,刚刚意识到我完全应该只在服务应用程序上使用@RestController,而不是我指的是客户端的这个应用程序。我没有提到这是客户端。我的错。 @Controller 用于 Web 和 @RestController 用于服务,如果我做对了。在同事的帮助下,我保留了 @Controller 并使 @GetMapping 字符串与返回字符串不同,并且一切似乎都在工作。在上述答案的帮助下,我意识到我走错了路。
    • 享受..!!快乐编码。
    猜你喜欢
    • 2021-04-12
    • 1970-01-01
    • 2021-09-03
    • 2016-07-05
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 2020-08-13
    相关资源
    最近更新 更多