如何自定义freemarker的表达式?
如果自定义freemarker的表达式,注意不是函数,像下面这样:
<#if name?myExpr> myExpr是自己定义的一个方法,例如对字符串进行某种判断返回true or false
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如果自定义freemarker的表达式,注意不是函数,像下面这样:
<#if name?myExpr> myExpr是自己定义的一个方法,例如对字符串进行某种判断返回true or false
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(11)
何必那么麻烦了!
比如你的方法
myObj.myExpr(name)是判断是否为空的
直接在ftl中引用该方法
而现在你又要封装一层
function a(){
myObj.myExpr(name)
}
然后又在ftl中使用a()
这样不就是白白花时间吗?
看lZ的意思就是在宏中引用java的方法:
比如:myExpr(String name)方法
<#if name?myExpr>
中 name 和 myExpr都是java对象
那么在设置model时候就应该把这个方法myExpr的对象设置进去
myObj.myExpr(name)
<#if name?myObj.myExpr(name)>
没测试过,不知道行不行
看lZ的意思就是在宏中引用java的方法:
比如:myExpr(String name)方法
<#if name?myExpr>
中 name 和 myExpr都是java对象
那么在设置model时候就应该把这个方法myExpr的对象设置进去
myObj.myExpr(name)
是不是这个逻辑放到业务层里更好?
做freemarker不少了,没听说有这个功能,所有的自定义都是通过@来调用,官方文档也没提到?调用自定义函数
做freemarker不少了,没听说有这个功能,所有的自定义都是通过@来调用,官方文档也没提到?调用自定义函数
那没办法了:)
请参考我之前的一篇文章:
http://www.ibm.com/developerworks/cn/java/j-lo-freemarker/index.html
请参考我之前的一篇文章:
http://www.ibm.com/developerworks/cn/java/j-lo-freemarker/index.html
这个只能通过修改freemarker的源码,重新编译来实现了。FreeMarker的外部扩展只有宏(macro)、方法(function)、模板加载、及缓存。