Webit Script 1.4.0 发布,支持 JSP TagLib Function

来源: 投稿
作者: zqq90
2014-02-09 00:00:00

Webit Script 是一个简单灵活自由开放的开源的模板引擎,基于Java开发,支持Java5 及以上版本,采用BSD开源协议。

本次更新同时附带了一个tools包: webit-script-tools-1.0.0.jar 包含了一些常用的扩展支持。

Webit Script 1.4.0更新记录:

【修复】'--i' 递减的bug。
【移除】Engine.setResourceLoader(loader)。
【增强】List 可以像一个动态数组一样操作,如 `list[2] = "b"`。
【调整】Struts2 & JFinal 的支持部分使用 '.wit' 作为默认的后缀名。
【调整】默认Loader设置为RouteLoader,缺省Loader设置为ClasspathLoader,并设置了一个StringLoader和一个classpath根目录的路由规则。
【调整】默认开启向子模版共享传入的参数,即`engine.shareRootData=true`。
【调整】内置的BeanUtil符合"JavaBeans Spec"规则,当属性第二个字符大写时保持第一个字母的大小写。
【调整】Engine.resolveBean/getBean 分别重命名为 resolveComponent/getComponent。
【调整】Template.reloadTemplateForce() 重命名为 reload,用于强制重新解析模版。
【调整】对于同一设置,使用Engine.getComponent(..)将返回同一实例,并且不重复注入参数,线程安全。
【调整】WebEngineManager.appendProperties(..) 允许重复的key,不会覆盖之前的设置。
【调整】Web支持模块提供的ServletEngineUtil将ServletContext设置到`servlet.servletContext`。
【调整】resolvers配置从Engine移至ResolverManager
【调整】使用NoneNativeSecurityManager作为默认的native安全管理器。
【新增】解析错误文字现在可以显示提示了。
【新增】可在配置文件里设置依赖的模块,例如:`@modules+=lib-assert.wim`。
【新增】NoneNativeSecurityManager
【新增】新增`ClassEntry`,可以设置同一类型组件的不同实例的配置,设置方法详见帮助文档。
【新增】配置文件允许使用`@extends`,用来继承配置。
【新增】新增LazyLoader,可以包装一个Loader,延迟资源的检测。
【新增】新增RouteLoader,这是个Loader的路由包装。
【新增】Web支持部分新增GlobalServletRegister,可以注册全局变量`BASE_PATH`。
【新增】新增对 `jfinal/Record` 的 resolver。
【新增】Engine.getConfig(key), Engine.getResourceLoader()。
【新增】新增js中函数的声明方法`function a(){}`。
【新增】执行初始化模版的参数新增GLOBAL_MAP/CONST_MAP的别名GLOBAL/CONST。
【新增】ContextLocalRegister,提供了LOCAL(key[,value]) 全局变量,用于读取、存入,单次执行时的共享数据。
【新增】新增配置`resolverManager.ignoreNullPointer` 用来设置是否忽略属性读取时本体为null的异常,默认为true。
【新增】Loader API新增isEnableCache(String name),用于决策是否需要在Engine中缓存Template。
【新增】SimpleSecurityLoader,是一个简单的带有安全控制的Loader。
【新增】`ScriptUnsetableBag` 和 `ScriptUnsetableBagResolver`,简单的类似Map的接口,在模版/脚本里面不可进行set操作。
【新增】常量声明的关键字`const`,如`const a=1;`。
【新增】新增设置`Engine.assistantSuffixs`,用于设置允许的辅助的多个后缀名。
【新增】新增库,测试用的lib-assert.wim,类型判断的lib-type.wim
【新增】新增片段缓存库 lib-cache.wim
【新增】新增支持JSP TagLib Function注册为全局变量的库lib-tld.wim。

另外,自动测试可以测试匹配的输出,更新ASM、java_cup、Props,以及其他内部细节调整,提升稳定性以及性能,命名更符合规范。

【配置文件迁移指南】
1. 使用短名称
[webit.script.Engine] => [engine]
[webit.script.resolvers.ResolverManager] => [resolverManager]
[webit.script.global.DefaultGlobalManager] => [global]
[webit.script.security.impl.DefaultNativeSecurityManager] => [nativeSecurity]

2. engine.*Class 删除后面的Class,
resourceLoaderClass,filterClass,textStatementFactoryClass,nativeSecurityManagerClass,coderFactoryClass,globalManagerClass,loggerClass
分别改成
resourceLoader,filter,textStatementFactory,nativeSecurityManager,coderFactory,globalManager,logger

3.  其他
engine.resolvers => resolverManager.resolvers
engine.initTemplates => engine.inits

4.  RouteLoader已经设置为默认Loader,建议通过`routeLoader-main.default`设置默认Loader

文档已同步更新,更多细节请参考文档:http://zqq90.github.io/webit-script/

展开阅读全文
10 收藏
分享
15 评论
10 收藏
分享
返回顶部
顶部
返回顶部
顶部