【问题标题】:How to access HTML files **through a controller** in Spring boot without a template engine如何在没有模板引擎的情况下在 Spring Boot 中**通过控制器**访问 HTML 文件
【发布时间】:2021-11-17 17:04:19
【问题描述】:

所以我一直在努力让一个简单的应用程序在不使用模板引擎的情况下通过控制器填充 HTML 文件来运行。

我想我会花一些时间来发布与上述主题相关的发现。请看下面的答案

这里的问题是如何在没有模板引擎的情况下在 Spring boot 中通过控制器访问 HTML 文件?

【问题讨论】:

  • /static 用于静态文件,与 Thymeleaf 无关。此外,您不需要控制器,但最好通过WebMvcConfigurer 注册视图控制器。同样对于index,这不是必需的,因为默认情况下 Spring Boot 已经解决了这个问题(如果你有最新版本)。
  • 同意,它已经通过 Spring boot 处理,但默认情况下不能通过控制器访问。如果我在我的 url 标头中明确输入 html 文件名,它当然会填充,但目标是在请求“/”时生成文件。
  • 对于/,这已默认启用(请参阅stackoverflow.com/a/70000437/2696260),因此您甚至不需要它(除非您禁用自动配置),
  • 同意。它在默认情况下有效,但仅在您使用 index.html 时才有效....如果您想使用控制器路由到另一个静态文件.....也许 extra.html 您将需要一个控制器来路由到特定的静态文件夹中的文件
  • 不,你不需要控制器,你可以简单地使用WebMvcConfigureraddViewControllers 方法来添加它们。无需为此编写完整的控制器。在您的回答/问题旁边,您需要 / 来解析索引,这是不正确的,因为默认情况下有效。

标签: java spring spring-boot spring-mvc controller


【解决方案1】:

这是对一个简单问题的非常简单的回答,这不是为了扩展,也没有考虑到您的整个项目

请记住,这不是商业环境中的常态,但我真的很困扰我如何在不使用模板引擎的情况下从控制器中获取简单的 HTML 来填充。我让它与 thymeleaf 依赖一起工作,但我想让它尽可能地工作。我阅读了很多有关 ViewResolver Config 类或类似内容的帖子,但没有任何效果。它会与 Spring boot 的内部解析器冲突。

简单的答案是一旦 spring boot 初始化......你所有的静态文件必须在resources/static/

Templates 文件夹是专门用于 Thymeleaf 的,根据我的发现,如果你只是将它放在资源文件夹中,它将无法工作。

使用resources/static/ 中的文件,您可以访问 localhost:8080/yourfilename.html

但是,如果您想通过控制器访问它,您可以使用以下内容创建一个控制器:

@Controller
public class IndexController {

    @RequestMapping("/")
    public String getIndex(){
        return " index.html";
    }
}

如果您想删除返回值中的.html,则必须将以下内容添加到您的 application.properties 文件中

spring.mvc.view.suffix=.html

那么你可以使用下面的

@Controller
public class IndexController {

    @RequestMapping("/")
    public String getIndex(){
        return " index";
    }
}

再一次,这是我自己进行的一项简单研究,只是为了让它发挥作用。

【讨论】:

    猜你喜欢
    • 2018-09-03
    • 1970-01-01
    • 2023-03-25
    • 2016-05-10
    • 2015-08-18
    • 2014-12-23
    • 2011-11-11
    • 2018-07-15
    • 2018-07-03
    相关资源
    最近更新 更多