thymeleaf模板引擎的优势何在?

        如今spring boot 的火爆程度到了想避开,想不闻都不容易。几大主流IT资讯网,随便浏览下都能看到相关的资讯。还有一个特点就是某一技术、应用火爆了就铺天盖地的报道来了,各种花式赞誉。好像你不学,你不用,你就low爆了,错过了风口,错过了1个亿似的。spring  boot 这么火,那就学学,练练手,做个快速开发平台(也就是个可以在线设计数据库,再通过模板生成controller,service,dao 等各层的代码)。

        spring  boot 推荐使用thymeleaf,支持最好。jsp配置麻烦,现在不流行用jsp做视图层了。那好我也学学thymeleaf,跟一跟时代的脚步。各种不适应、采坑也就随之而来。当然有部分原因是初次使用,了解不深。

       网上对thymeleaf的优点,主要集中在:模板即原型,前后端分离。缺点:效率不是最好的,甚至算差的。采用标签属性来进行模板的定义,没有破坏基本的html文档结构,这样就可以直接在浏览器中打开查看布局效果。也为前后端的分离开发奠定基础。前端只需要掌握thymeleaf,就可以单独开发,测试。

       这样的优势对我们来说没有意义,我们是前后端个人负责。都是信息化管理系统,大部分页面布局,操作相似,也不会有太复杂的需要自造轮子的页面,后端人员熟悉后,可以前后端贯通开发。

      1.方面现在的页面很多是组件构成,异步从后台获取数据。在没有数据填充的情况下,就只是一个基本的框架结构,一个容器元素如:div。这样的页面即使能直接打开观看,又能看到什么效果。和实际运行的效果还是有很多差别,特别是有数据无数据情况下的交互、反馈并不能完整的体现出来。最后还是要前后端联调测试。

      2.还有些是运行时的上下文数据需要用到,包括相对路径等等。直接当静态文件打开和以web服务器运行效果也不一样。这些细小的差别出现问题,很难进行排查。因为习以为常,理所当然的惯性思维,很难让我们注意到是这些细节造成的问题。

      3.实际的开发体验也并不好,标签里的属性如 src,href可能要写两边,一种是普通的静态文件路径写法,一种是thymeleaf的语法。说是既可以直接打开保证了能引用到外部文件,服务器运行时会使用thymeleaf的语发写的路径,保证实际运行时也能准确引用文件。对我们意义不大,都是看实际运行结果,调整程序。不会静态的看一次,运行看一次,没必要。

     4.编写模板时,要引用静态资源时,涉及到路径,一般是相对web服务器的相对路径写法:/projectName/js/xxx  等。在jsp中会在头部或者一个被包含的文件中写:

      String contextPath=request.getContextPath();

在需要的地方使用el表达式输出即可。thymeleaf中如果是标签属性要引用资源,就用 th:src  ,th:href等语法。问题是js中要使用后台传过来的变量,写法又不一样。包含获取contextPath还有特定的语法。开始使用时就是懵的,要一点点找语法。不适应。2.0版本,所有的html标签还必须有关闭标签,否则解析出错。3.0到是解决了这个问题,不再强制要求。

     5. 还有问题就是如果js脚本里使用了<,>,& [[ ]] 等符号麻烦又来了,解析出错。把脚本里的一些符号都当成thymeleaf里的符号进行解析。这肯定出问题啊。光加上还不行,还得加注释/**/ 结果还不行 还得改

你可能感兴趣的:(javaWeb,spring)