当前位置: 首页 > 面试题库 >

SpringThymeleaf风景的正确位置

全誉
2023-03-14
问题内容

我正在用Thymeleaf运行Spring
Boot应用程序。当我通过IDE(IntelliJ)运行应用程序时,一切运行正常。但是,当我通过命令行(java -jar)运行应用程序时,视图无法解析,并且出现以下错误:

org.thymeleaf.exceptions.TemplateInputException: Error resolving template "index", template might not exist or might not be accessible by any of the configured Template Resolvers
    at org.thymeleaf.TemplateRepository.getTemplate(TemplateRepository.java:245)
    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1104)
    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1060)
    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1011)
    at org.thymeleaf.spring3.view.ThymeleafView.renderFragment(ThymeleafView.java:335)
    at org.thymeleaf.spring3.view.ThymeleafView.render(ThymeleafView.java:190)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1225)
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1012)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)

这是我的设置:

我的目录结构

PROJECT-ROOT
  --src
    --main
      --java
        --controllers
          --[CLASS WITH MAIN METHOD]
        --views
          --index.html

我的模板解析器:

@Bean
  public ViewResolver viewResolver() {
    ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
    templateResolver.setTemplateMode("XHTML");
    templateResolver.setPrefix("views/");
    templateResolver.setSuffix(".html");
    SpringTemplateEngine engine = new SpringTemplateEngine();
    engine.setTemplateResolver(templateResolver);

    ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
    viewResolver.setTemplateEngine(engine);
    return viewResolver;
  }

我应该将视图放在哪里,以便从jar文件运行时可以正确解析它们?


问题答案:

我认为答案是,这取决于您的构建配置。目录“ src / main /
views”不是任何常用构建工具的标准资源位置,因此您必须将其显式添加到用于构建jar的工具的配置中。

如果我是你,我会顺其自然(为什么会有所不同?),只对类路径资源使用“ src / main /
resources”。我还将完全省略thymeleaf配置,并让Spring Boot处理它,将模板放在“ src / main / resources /
templates”中。



 类似资料:
  • 问题内容: 有没有一种干净的方法可以阻止风暴,而又不使用“ kill XXX”杀死风暴,其中XXX是PID? 我运行“ storm kill topology- name”杀死拓扑,但是在那之后,有没有一种干净的方法来关闭worker,nimbus,supervisor和ui? 我没有从文档中找到与此命令相对应的任何命令:https : //github.com/nathanmarz/storm/

  • 我在react窗口列表元素中使用React/MUI Popover,并且无法正确定位Popover-它总是在窗口的左上角结束(组件无法在锚元素[in the docs])。 所以为了暂时解决这个问题,我决定使用参数来设置一个绝对位置——在我的例子中,就在窗口的中间。那也不行。 我已经查看了Chrome开发工具中的值,一切似乎都正常(即,我使用该工具时确实得到了一个锚定;我得到了有效的位置左/顶值;

  • 我在Internet上到处找了找,但我没有找到这个简单问题的直接答案:在JavaFX应用程序中切换场景的最佳方法是什么?我有几个FXML文件和控制器,每一个,我希望能够在他们之间切换尽可能快(屏幕大小应该保持不变,所有关于窗口应该保持不变,除了内容)。 我可以考虑多种方法,最常见的方法是用FXMLLoader加载FXML文件,然后创建一个新场景,然后将这个场景设置为舞台,最后显示舞台。这是可行的,

  • 我知道这是一个古老的问题,可以在很多地方找到,但我仍然无法找到解决方案。 我想要的是,如果我使用手机的库存相机拍摄图像或从图库中选择图像,它应该告诉我图像的方向或确切的高度和宽度,以便我可以决定方向。 到目前为止,我使用stackoverflow尝试的是:- 但问题是,当使用相机捕获图像时,它分别给出6和1的纵向和横向。如果从图库中选择图像,它会给我0。所以我无法确定图像是风景还是肖像。 提前感谢

  • 我使用onCreateOptionsMenu创建了一个溢出菜单,但该菜单几乎完全位于屏幕之外。我尝试过显式设置(如操作栏菜单显示屏幕中的建议),但这并没有解决我的问题。我也不想遵循使用旧主题的建议(如在ICS-Menu item text Cutoff?)。 XML是 我做错了什么?

  • 我是一个初学者程序员,我试图做一个简单的计算器,但由于某种原因,按钮似乎不能正常工作,它们要么消失,填满整个面板,要么设置在错误的位置。奇怪的是,当我悬停并在按钮上点击鼠标时,按钮就会出现。我可能会错过一些非常明显的东西,但请帮助(此外,代码不是很干净)。谢谢你! 主要的 计算器按钮 窗

  • 这个问题已经被问了无数次,但是没有一个真正解决保存时的旋转问题。 这是我最初如何保存一个位图到我的设备: 以上内容保存了。 然后我看到了这个答案,但问题是它将已经保存的位图旋转到正确的方向。例如,如果您想将设置为,则可以这样做。但是,如果我想共享位图,或者想在设备库中打开它,方向仍然不正确。然后,我将不得不执行与上面相同的过程-等。这将导致同样的问题。 如何将