如何在spring boot中从restful控制器返回一个html页面?

新手上路,请多包涵

我想从控制器返回一个简单的 html 页面,但我只得到文件的名称而不是它的内容。为什么?

这是我的控制器代码:

 @RestController
public class HomeController {

    @RequestMapping("/")
    public String welcome() {
        return "login";
    }
}

这是我的项目结构:

[在此处输入图像描述

原文由 Gustavo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

当使用 @RestController 像这样:

 @RestController
public class HomeController {

    @RequestMapping("/")
    public String welcome() {
        return "login";
    }
}

这与您在普通控制器中执行此操作相同:

 @Controller
public class HomeController {

    @RequestMapping("/")
    @ResponseBody
    public String welcome() {
        return "login";
    }
}

使用 @ResponseBody 返回 return "login"; 作为字符串对象。您返回的任何对象都将在 HTTP 正文中作为 JSON 附加为 payload

这就是为什么您在响应中只得到 login 的原因。

原文由 kukkuz 发布,翻译遵循 CC BY-SA 4.0 许可协议

按照以下步骤操作:

  1. 必须将 html 文件放在 resources/templates/

  2. @RestController 替换为 --- @Controller

  3. 如果您正在使用任何视图解析器,请将其移除。

  4. 您的控制器方法应返回不带扩展名的视图文件名,如 return "index"

  5. 包括以下依赖项:

    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-thymeleaf</artifactId>
   </dependency>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-devtools</artifactId>
   </dependency>`

原文由 Chandan Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题