我的Spring Boot项目没有从 src / main / resources / templates / login.html 加载视图。但是,它确实从 src / main / resources / static / index.html 加载视图。
这是我的项目结构:
我已经添加了简单的<a>
标签,用于在 index.html
<div>
<a class="btn" href="login">Login</a>
</div>
LoginController:
@RequestMapping("/login")
public String showLogin() {
System.out.println("Login method called");
return "login";
}
此方法未调用。此外,我看到许多教程显示您不需要在 static 文件夹中添加视图,只需在 templates 文件夹中添加视图,Spring Boot就会自动选择它。
但是似乎Spring Boot没有从 templates 文件夹中选择视图,而是显示了白色标签错误页面。
我不是在使用jsp页面,而是在Thymelead模板上。
application.properties
server.servlet.context-path=/hisservices
server.port=8081
welcome.message: Welcome to the HIS Services Dashboard
WelcomeController: <-这将显示 index.html 页面
// 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 文件夹添加显式映射?
答案 0 :(得分:1)
IMO,您需要进行程序包重组。
将主应用程序文件(HisserviceJwtApplication.java)移动到 com.skm.hisservice.securejwt 包中,并在 com.skm.hisservice下创建新的包 config 。 securejwt 并移动 SecurityConfig 。无需更改其他软件包。
这样做,您的 LoginController 将通过spring-boot自动扫描,并且也会调用方法 showLogin 。
如果要继续使用现有的包结构(不建议使用),则将 @ComponentScan('com.skm.hisservice.securejwt.controller')添加到主应用程序文件中。
>答案 1 :(得分:0)
除非使用 Thymeleaf ,否则Just Spring Boot无法从模板中找到视图。您必须将以下存储库添加到项目中以获得解决方案。这样的方式
main/webapp/WEB-INIF/*.html
在文件application.properties中输入这两行代码
spring.mvc.view.prefix: /WEB-INF/
spring.mvc.view.suffix: .html
现在,运行项目,希望问题得以解决。