Webit Script 1.4.0 发布,支持 JSP TagLib Function

zqq90
 zqq90
发布于 2014年02月09日
收藏 10

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/

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Webit Script 1.4.0 发布,支持 JSP TagLib Function
加载中

最新评论(15

zqq90
zqq90

引用来自“子の越”的评论

@webit 与jodd 3.5结合的DEMO更新到了1.4.1,可是无处下载Webit Script 1.4.1的jar文件啊。

已上传至中央库
这是更新日志
http://www.oschina.net/news/49256/webit-script-1-4-1
zqq90
zqq90

引用来自“子の越”的评论

@webit 与jodd 3.5结合的DEMO更新到了1.4.1,可是无处下载Webit Script 1.4.1的jar文件啊。

嗯 前段时间忙忘了 多谢提醒 待会儿弄一下 然后再另行通知 ;)
rubysoft
rubysoft
@webit 与jodd 3.5结合的DEMO更新到了1.4.1,可是无处下载Webit Script 1.4.1的jar文件啊。
闲大赋
闲大赋
对大公司来说,有个ide确实很方便
zqq90
zqq90

引用来自“opal”的评论

引用来自“webit”的评论

引用来自“opal”的评论

嵌套for循环中,如何区分不同的 for.iter.index?

super.for.iter.index
把 for.iter 看成一个特殊的变量名就可以了

如果有4层的话,要写成super.super.super.for.iter.index?
建议加个 as 关键字

这个其实没那么麻烦
var iter_outer = for.iter;
就可以了
嵌套N层都没关系
opal
opal

引用来自“webit”的评论

引用来自“opal”的评论

嵌套for循环中,如何区分不同的 for.iter.index?

super.for.iter.index
把 for.iter 看成一个特殊的变量名就可以了

如果有4层的话,要写成super.super.super.for.iter.index?
建议加个 as 关键字
开源中国封号艹你妈
开源中国封号艹你妈

引用来自“wtony”的评论

引用来自“Tuesday”的评论

击败苹果的当然不会是安卓, 而是windows.

必须是COS!

不是CS吗
zqq90
zqq90

引用来自“opal”的评论

嵌套for循环中,如何区分不同的 for.iter.index?

super.for.iter.index
把 for.iter 看成一个特殊的变量名就可以了
Andyfoo
Andyfoo
不错
闲大赋
闲大赋

引用来自“Xiao_f”的评论

没有IDE插件支持的模板引擎就是一个笑话

慢慢来,有ide支持的老模板引擎也并不是一出生就有支持的。你用的所谓有ide支持的老模板引擎都已经有很多不足了,比如性能跟现在的模板引擎比,龟速一样。
返回顶部
顶部