模板引擎简介

 

SpringBoot支持的视图技术

  • jsp   官方不推荐。jsp里面可以写java代码,不利于mvc模式的严格分层,且不好发挥SpringBoot的特性
  • html   不推荐。html可以使用ajax向controller请求数据,但controller调用视图并传递数据时,html怎么取出controller传递的数据?html毕竟是静态页面,难以动态展示controller传递的数据
  • 模板引擎   推荐。符合mvc模式,擅长动态展示controller传递的数据。

 

 

常见的模板引擎

  • Thymeleaf  官方推荐。能与SpringBoot完美整合,可直接使用表达式取值,可以像操作jsp一样操作Thymeleaf
  • FreeMarker  这个用的也比较多
  • Velocity 

  在springboot中,模板引擎的默认存放位置是resources/templates。

 

 


 

 

html视图配置

使用jsp,jsp中可以写java代码,可以用EL表达式或request.getXxx()获取controller传递的数据;

html文件中不能写java代码,难以获取controller传递的数据。

 

如果硬要使用html,配置如下: 

比如在resource/static/html下面放html文件

#应用名称。访问时项目的根路径是ip:port/, 不是ip:port/项目名
spring.application.name=HIS
#使用的端口,默认就是8080
server.port=8080

#视图解析 spring.mvc.view.prefix=/html/ spring.mvc.view.suffix=.html

前缀是/html/,不是什么/static/html/,也不是什么classpath:/static/html。

注释必须要独占一行。

 

 

在controller中直接返回html文件名即可,示例:return "index";

注意Controller上要用@Controller,不能用@RestController或@ResponseBody,这2个注解是把return返回的字符串作为json直接返回给浏览器。

 

 

html还有一个很大的问题:

/resources/static下的文件是可以直接访问的,在浏览器地址栏输入  ip:port/html/xxx.html 可以直接访问对应的页面,如果后台管理页面暴露出去怎么行。

/resources/templates下的文件受保护,不能被浏览器直接访问。

 

posted @ 2020-02-07 19:11  chy_18883701161  阅读(382)  评论(0编辑  收藏  举报