vscode + springboot 添加 html展示
1. vscode环境搭建和工程创建请参考上一篇文章
vscode + springboot + HTML 搭建服务端(一)
2. 添加一个简单的展示
2.1 效果
2.2 代码
2.3 代码分解
-
1: @RestController
-
2: @RequestMapping(“/”)
- url访问路径:localhost:8080/,浏览器中输入此url会调用其作用的函数hello()
-
3: hello函数
- 返回一个字符串,显示在浏览器中
3. 添加并展示HTML文件
上面只是在url中展示了一个字符串,而实际项目中是需要将一个网页展示出来,所以下面我们来添加一个HTML文件。
3.1 添加 html 文件
- 在 src/main/resources/templates 路径下面添加 index.html 文件
- index.html 文件代码:
<!DOCTYPE html> <html> <head> <title>hello1111</title> </head> <body> <h1>index22222</h1> </body> </html>
3.2 添加 url 访问路径
- url 访问路径添加为: localhost:8080/index
3.3 运行程序,查看结果
3.3.1 很不幸的,遇到错误
org.thymeleaf.exceptions.TemplateInputException: Error resolving template…
- 查找了各种解决方案,都不行。查找的解决方案参考以下链接,大体的解决办法都包含在里面了,可惜对我无用:
https://blog.csdn.net/qq_38487209/article/details/125873532
https://www.cnblogs.com/DrAyaneShindou/p/13683358.html
3.3.2 解决过程
-
在运行程序后,会在工程目录下生成一个bin文件夹
-
发现 bin 文件夹和 src文件夹的结构比较相似
-
在报错的时候,发现在 src/main/resources/templates 文件夹下添加的 index.html 并没有在 bin/templates 文件夹下
-
死马当活马医,将 index.html 文件拷贝一份到 bin/templates 目录下
-
重新运行,打开网页,运行成功了…
3.3.3 总结
- bin目录下应该是存放的执行文件,索引资源时也是在该路径下索引,所以在src/main/resources/templates 路径下的 html 文件可能索引不到 —> 猜的…
- 为什么索引不到?是需要什么额外配置吗?
4. demo源码
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
@SpringBootApplication
@RestController
public class DemoApplication {
@RequestMapping("/")
public String hello()
{
return "Hello";
}
@RequestMapping("/index")
public ModelAndView index()
{
ModelAndView modelView = new ModelAndView("index");
return modelView;
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
5. 后记
- application.properties 文件一行没改,里面内容是空的
- 修改监听端口,在application.properties文件里添加(这里修改的文件是在bin目录下的才会生效,修改src目录下的不会生效,也不知道为啥):
server.port=9000