SpringBoot
动态和静态页面
什么是动态,什么是静态
SpringBoot会将静态访问(html/图片等)自动映射到静态目录下
src/main/resources/static
,即可以直接通过地址栏访问其静态页面。
从后台跳转到静态页面的代码如下:
@Controller
public class HtmlController {
@GetMapping("/html")
public String html() {
return "/index.html";
}
}
动态页面,即文件夹
src/main/resources/templates
下页面,需要先请求服务器,访问后台应用程序,然后再转向到页面
//返回的是一个页面,所以不能再用@RestController
@Controller
public class TemplatesController {
@GetMapping("/templates")
String test(HttpServletRequest request) {
//逻辑处理,向页面转参数 key和value
request.setAttribute("key", "hello world");
//跳转到 templates/index.html动态页面,templates目录为spring boot默认配置的动态页面路径
return "/index";
}
}
index.html
将后台传递的key参数打印出来
<!DOCTYPE html>
<html>
<span th:text="${key}"></span>
</html>
动态和静态的区别
静态页面的
return
默认是跳转到/static/index.html
,当在pom.xml
中引入了thymeleaf
组件,动态跳转会覆盖默认的静态跳转,默认就会跳转到/templates/index.html
,注意看两者return
代码也有区别,动态没有html
后缀。
重定向
如果在使用动态页面时还想跳转到
/static/index.html
,可以使用重定向return "redirect:/index.html"
@GetMapping("/html")
public String html() {
return "redirect:/index.html";
}