通过学习Thymeleaf的文档(针对的版本是2.x),并且通过查看github中3.0.1版本的示例代码。总算能跑通一个最基础的Demo版本。
首先没有使用maven 导致各种ClassNotFoundException和NoClassDefFoundError现罗列所需java库如下:
- attoparser:解析XML和HTML标记
- javassist:分析,编辑,创建字节码,用于动态编程使用
- ognl:一个表达式语言
- slf4j:日志系统的facade
- unbescape:编解码库
可以一目了然,这些都和html或xml解析息息相关。
(同时可以看出自动化架构多么的省时省力)
github中的代码中,自己实现了一个微型的mvc(其实称不上mvc,仅仅是一个url的映射)
通过一个Map做一个url和Controller的映射,返回一个controller都必须实现的接口。并执行接口方法。在接口方法中执行Thymeleaf引擎并输入所需信息(主要是模板名)
整个项目主要类 :
- Application:主应用类,主要配置TemplateResolver, 提供templateEngine创建,url至controller转换。
- filter:拦截所有url信息
- I..Controller 所有Controller的接口,必须实现他的process方法。
至此,整体架构完成,其余的就是填坑及测试Thymeleaf的各种功能项了