NutzCN Logo
问答 rk_cms中freemarker自定义标签的加载方式怎样改成在freemarker.js中配置?
发布于 3024天前 作者 Lewe© 2106 次浏览 复制 上一个帖子 下一个帖子
标签:

rk_cms中是这样的

MvcSetup(MainSetup)
ioc.get(FreeMarkerConfigurer.class, "mapTags");

freemarker_tags.js片段
var ioc = {
	shiroTags : {
		type : "com.rekoe.shiro.freemarker.ShiroTags",
		singleton : true
	},
	mapTags : {
		factory : "$freeMarkerConfigurer#addTags",
		args : [ {
			'shiro' : {
				refer : 'shiroTags'
			},
			'cms_perm' : {
				refer : 'permission'
			},
			'process_time' : {
				refer : 'process'
			},
			'pagination' : {
				refer : 'pagination'
			},

怎样移植到nutzbook中统一在freemarker.js中配置?

6 回复

另外
nutzbook freemarker.properties中
auto_import=/view/macro/lib.ftl as lib 中配这句好像没起作用

@wendal rk_cms没用到nutzbook中的freemarker.js

nutzbook freemarker.js是这样的啊

var ioc = {
	currentTime : {
		type : "org.nutz.plugins.view.freemarker.directive.CurrentTimeDirective"
	},
	configuration : {
		type : "freemarker.template.Configuration"
	},
	freeMarkerConfigurer : {
		type : "org.nutz.plugins.view.freemarker.FreeMarkerConfigurer",
		events : {
			create : 'init'
		},
		args : [ {
			refer : "configuration"
		}, {
			app : '$servlet'
		}, "WEB-INF", ".ftl", {
			refer : "freemarkerDirectiveFactory"
		} ]
	},
	freemarkerDirectiveFactory : {
		type : "org.nutz.plugins.view.freemarker.FreemarkerDirectiveFactory",
		fields : {
			freemarker : 'org/nutz/plugins/view/freemarker/freemarker.properties',
		}
	}
};

freemarker_tags.js中

mapTags : {
		factory : "$freeMarkerConfigurer#addTags",

这段不能放到
freemarker.js的

freeMarkerConfigurer : {

里面配置吗,必须要在MainSetup中加载一下?

// 加载freemarker自定义标签 自定义宏路径
ioc.get(FreeMarkerConfigurer.class, "mapTags");

不能, 表达不了.

要是FreeMarkerConfigurer加个setTags方法,倒是可以.

@ysysdzz
你可以这样写

freeMarkerConfigurer : {
		type : "org.nutz.plugins.view.freemarker.FreeMarkerConfigurer",
		events : {
			create : 'init'
		},
		fields : {
			tags :{
				'shiro' : {refer : 'shiroTags'},
				'timeFormat' : {refer : 'timeFormat'},
				'htmlCut' : {refer : 'htmlCut'},
				'pagination' : {refer : 'pagination'},
				'currentTime' : {refer : 'currentTime'},
				'process_time' : {refer : 'process'},
				'cms_perm' : {refer : 'permission'},
				'perm_chow' : {refer : 'permissionShiro'}
			}
		},
		args : [ {
			refer : "configuration"
		}, {
			app : '$servlet'
		}, "WEB-INF", ".html", {
			refer : "freemarkerDirectiveFactory"
		} ]
	}

我那样写 是为了把freemarker.js 和插件绑定 把 自定义的部分暴露出来给 开发者自己用

添加回复
请先登陆
回到顶部