freemarket自定义指令如何在方法体内为模板赋值
package com.jcms.taglib; import java.io.IOException; import java.io.Writer; import java.util.ArrayList; import java.util.List; import java.util.Map; import freemarker.core.Environment; import freemarker.template.TemplateDirectiveBody; import freemarker.template.TemplateDirectiveModel; import freemarker.template.TemplateException; import freemarker.template.TemplateModel; public class SqlDirectiveModel implements TemplateDirectiveModel { public void execute(Environment env, Map map, TemplateModel[] model, TemplateDirectiveBody body) throws TemplateException, IOException { body.render(env.getOut()); } }
<@sql return='v'>
你好
<#if v??>
${v}
</#if>
</@sql>
freemarket如何定义自定义指令内为模板赋值,这样我在指令内便能访问到我return的值啦.995...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
setVariable和setGlobalVariable作用范围一样,但我想要的是局部变量,即出标签体变量便销毁.而不是全局变量.
setVariable和setGlobalVariable作用范围一样,但我想要的是局部变量,即出标签体变量便销毁.而不是全局变量.
setGlobalVariable没有问题,在整个页面都可以访问到,setLocalVariable会报错,错误原因:环境没有执行宏内容。
Environment env 这个参数有两个方法:
setLocalVariable, setGlobalVariable
995