freemarket自定义指令如何在方法体内为模板赋值

发布于 2021-11-15 09:13:32 字数 825 浏览 842 评论 5

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

清风夜微凉 2021-11-16 23:19:56

setVariable和setGlobalVariable作用范围一样,但我想要的是局部变量,即出标签体变量便销毁.而不是全局变量.

躲猫猫 2021-11-16 22:54:40

setVariable和setGlobalVariable作用范围一样,但我想要的是局部变量,即出标签体变量便销毁.而不是全局变量.

拥有 2021-11-16 21:28:52

setGlobalVariable没有问题,在整个页面都可以访问到,setLocalVariable会报错,错误原因:环境没有执行宏内容。

public void setLocalVariable(java.lang.String name,
                             TemplateModel model)
墨洒年华 2021-11-16 20:32:10

Environment env 这个参数有两个方法:

setLocalVariable, setGlobalVariable

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文