当前位置: 首页 > 知识库问答 >
问题:

Spring Boot未从模板加载视图

王才英
2023-03-14

我的Spring Boot项目不加载视图从src/main/Resources/模板/login.html.但是它加载视图从src/main/Resources/静态/index.html.

以下是我的项目结构:

我添加了简单的

    <div>
        <a class="btn" href="login">Login</a>
    </div>

登录控制器:

@RequestMapping("/login")
public String showLogin() {
    System.out.println("Login method called");
    return "login";
}

无法调用此方法。此外,我看到许多教程显示,您不需要在静态文件夹中添加视图,只需在templates文件夹中添加视图,Spring Boot就会自动选择它。

但SpringBoot似乎并没有从templates文件夹中选取视图,而是显示了白色标签错误页面。

我没有使用jsp页面,而是使用Thymelead模板。

应用程序属性

server.servlet.context-path=/hisservices

server.port=8081

welcome.message: Welcome to the HIS Services Dashboard

欢迎主计长:

// inject via application.properties
@Value("${welcome.message:test}")
private String message = "Hello World";

@RequestMapping("/")
public String welcome(Map<String, Object> model) {
    model.put("message", this.message);
    return "welcome";
}

是否需要为templates文件夹添加显式映射?


共有1个答案

任昊苍
2023-03-14

IMO,你需要做包重组。

将主应用程序文件(HisserviceJwtApplication.java)移动到com.skm.hisservice.securejwt包中,并在com.skm.hisservice.securejwt下创建新的包配置,然后移动SecurityConfig。无需更改另一个包。

通过这样做,您的LoginController将通过Spring引导自动扫描,并调用方法show Login。

如果您想继续使用现有的包结构(不可取),则将@ComponentScan('com.skm.hisservice.securejwt.controller')添加到主应用程序文件中。

 类似资料:
  • 我有一个相对较大的Web项目,为了简化开发过程,我决定将项目分成几个模块(带有模型、控制器的jar项目 如何从jar的META-INF/resources目录强制执行spring mvc负载视图模板? 我知道静态资源可以通过配置加载 我的主模块中的视图解析器如下所示 似乎没有任何地方可以指定jar中的视图路径。 我希望从主模块的/WEB-INF/jsp加载相同的视图,从jar文件的META-INF

  • 模板加载器 模板加载器是加载基于抽象模板路径下,比如 "index.ftl" 或 "products/catalog.ftl" 的原生文本数据对象。 这由具体的模板加载器对象来确定它们取得请求数据时使用了什么样的数据来源 (文件夹中的文件,数据等等)。当调用 cfg.getTemplate (这里的 cfg 就是 Configuration 实例)时, FreeMarker询问模板加载器是否已经为

  • 问题内容: 我正在尝试使用Webpack设置一个有角度的项目,但是我不知道如何从html模板中引用图像并将其包含在构建中。 我的项目树如下: 我正在尝试与和一起使用,但这只是没有发生。 这是一个示例模板: 问题#1 :我希望能够参考相对于的图片。现在,路径需要相对于模板文件,这将变得非常丑陋()。 问题2 :即使我指定了相对路径(如我上面所做的那样),项目也可以成功构建,但实际上没有任何反应。路径

  • 我正在尝试使用从多个位置加载模板。这个项目是使用开发的。 我有两个maven项目: > 我的网站:maven的主要项目,包含自定义模板,例如WEB-INF/ftl/landing/login。ftl 通用模板:包含位于WEB-INF/ftl的通用freemarker模板,例如WEB-INF/ftl/landing/login。ftl 例如,Freemarker的想法是在“我的网站”中搜索登陆/登录

  • 在我的应用程序中,所有freemarker模板都位于/templates/ftl/中,因此在应用程序部署期间,我加载了一个类,我调用了一个扩展FreemarkerManager并具有方法的类 这样,当我需要加载模板文件时,我可以这样做: 仅在一种特定情况下,我需要获得一个来自完全不同路径的模板(而不是/templates/ftl/)。 如何在这个特定的时刻声明模板加载的第二个目录,而不破坏所有调用

  • 我有一个带有spring boot的java项目,我需要加载应用程序。外部文件夹中的属性和依赖项jar。 我使用该应用程序进行了测试。类路径和加载程序中的属性。路径属性工作正常。 当我使用外部属性文件(我确信它们已被使用)时,加载程序。路径工作不正常,结果为ClassNotFound,因为JAR未加载。 此外,当我启动应用程序与**-Dloader.path=**xxx它的工作正常。 如何使用外部