如何在Telligent 10平台通过原生Velocity模板语言获取当前时间?
Velocity获取当前时间失效?问题出在这!
嘿,刚好我对这个问题熟得很!我在Stack Overflow上刷过好多相关示例,发现很多人都踩了同一个坑:那些示例里的前两种日期获取方法必须预先定义$date变量,而且大多都是静态硬编码日期,根本不是获取系统当前时间——这就是你写的下面两行代码直接失效的原因:
#set ($today = $date.getCurrentDate()) <span>$today</span> #set ($today = $date.getDate()) <span>$today</span>
结合Telligent社区的实践经验,要解决这个问题,核心是先正确初始化$date变量,让它指向能获取系统时间的工具实例,而不是让它处于未定义的状态。
给你两个可行的方案:
- Telligent环境专属方案:利用Telligent内置的Velocity日期工具,先通过上下文获取服务实例,再调用方法拿到当前时间:
#set ($dateTool = $context.GetService(typeof(Telligent.Evolution.Extensibility.Velocity.VelocityDateTool))) #set ($today = $dateTool.Now) <span>$today</span> - 通用Velocity场景方案:确保你的模板上下文已经注册了Apache Commons Lang的
DateTool,然后直接调用工具类的方法:#set ($today = $dateTool.getCurrentDate()) <span>$today</span>
简单来说,你原来的代码里$date变量根本没被正确初始化,系统不知道它代表什么对象,自然调用不了getCurrentDate()这类方法。必须先让它指向一个合法的日期处理实例,才能动态获取到真实的系统当前时间,而不是用那些示例里的静态假日期。
内容的提问来源于stack exchange,提问作者id.ot
相关产品推荐
相关产品推荐

