锐力易思▼ 2016▼ springmvc servlet thymeleaf

R045.Thymeleaf的两个实用扩展

不等不靠,有囧有料。攻城狮,是一种品质。

Thymeleaf是优秀的无入侵的模板引擎,前段和后端可优雅共存。
分享2个实用扩展的思路,一个是MVC中C可选,一个是自带model的widget。

@史荣久 / 2016-12-25 / CC-BY-SA-3.0

观看视频

内容摘要

  • Thymeleaf和主流模板引擎相比,解析慢一倍,但开发快一倍
  • 可选C:即/a.html→AController?→a.htm
  • widget:自动组装View及View需要的Model
  • DTD出错了,可以去掉,namespce也可以去掉。
  • AngularJs + inline,有些不变之处。

补充说明

■ 什么是“可选C”的需求

在SpringMvc中,想通过URL(/a.html)访问模板(a.htm),只有2条道。
(a) U→C→T:必须有Mapping到”/a.html”的C,再解析模板T(a.htm)
(b) U→T:配置规则,满足规则的(有隐藏的C)直接解析模板T(a.htm)

真实的需求是,不需要配置,约定为有C时走C,没有时直接解析T。

■ 什么是“widget”,不是include

include或者replace,加工的对象都是模板本身,不包括数据Model。
比如include一个局部菜单(N),那么必须要在其scope内放置需要的model。
通常,要么filter等全局拦截,要么其Controller自己来设置。
要做到按需分配,要么大量配置,要么大量复制重复代码或继承。

此时,定义一个widget,根据命名约定,自动到context中寻找model。
大大简化了以上不必要的工作量和复杂度。

参考资料

欢迎围观

if (you.accept(MoilionCircle.SPIRIT)) {
    if(you.haveADL()){
        MoilionCircle we = you.search(MoilionCircle.SLOGAN);
        we.welcome(you);
    }
    if(you.share(this)){
        We.thank(you);
        We.mayFind7Moilion();
    }
}

制作花絮

每逢佳节录视频,雨又应时的下,此时此景,必须要有些伤情啊。

《R045.Thymeleaf的两个实用扩展》 列出Thymeleaf基本资料,运行官方例子,分享2个实用扩展的思路,一个是MVC中C可选,一个是自带model的widget。
题图:Thymeleaf是优秀的无入侵的模板引擎,前段和后端优雅共存。同时支持标签语系和文本语系。