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();
}
}
制作花絮
每逢佳节录视频,雨又应时的下,此时此景,必须要有些伤情啊。
题图:Thymeleaf是优秀的无入侵的模板引擎,前段和后端优雅共存。同时支持标签语系和文本语系。