velocity 和freemarker 基本一致,就是不如freemarker 的 语法强,但是挺简单的
自定义标签的实现过程,
定义标签实现类,继承 tagsupport 类 ,继承tag也行 类里面定义了一些 常用变量 很方便。
然后实现startTag() 和 endTag() 方法,
编辑tld 文件 里面属性名 和 标签类里面的属性对应 保持一致
然后就是使用标签了
我实现要麻烦一些
定义标签类后, 然后要定义各模块的输出模板类,让这些类实现了统一的接口,然后就是把模块中的一些属性 定义成一个pojo类,并要把这个类能和xml相互转换。
这样jsp标签传值时 应使用 ${formName.attributeName} 的形式来进行传值,我觉得是由于jsp不支持值栈的原因
属性值就能传到 tagclass中,这里通过classname得到要表现的模块表现类的实例,调用接口的方法就能从实例中得到模块的表现内容,然后把内容输出返回就ok了