Jeesite框架自定义上下文对象:ctx和${ctxStatic}
假设工程名为web
默认已存在:ctx:/web/a
ctxAdmin:/web/a
ctxPath:/web
ctxFront:/web/f
ctxStatic:/web/static
自定义方式:先写一个InitializingBean实现类,初始化后给Beetl设置共享变量即可,代码如下
package com.jeesite.modules;
import com.jeesite.common.beetl.BeetlUtils;
import com.jeesite.common.collect.MapUtils;
import org.beetl.core.GroupTemplate;
import org.springframework.beans.factory.InitializingBean;
import java.util.Map;
/**
* xcf 增加上下文变量
* 实现InitializingBean类,初始化后给Beetl设置共享变量
*/
public class BeetlInitializingBean implements InitializingBean {
private GroupTemplate groupTemplate;
public BeetlInitializingBean() {
afterPropertiesSet();
}
@Override
public void afterPropertiesSet() {
// 设置Beetl GroupTemplate,如果不设置,取上下文中唯一的GroupTemplate对象
this.groupTemplate = BeetlUtils.getResourceGroupTemplate();
// 设置Beetl全局变量
Map<String, Object> sharedVars = this.groupTemplate.getSharedVars();
if (sharedVars == null){
sharedVars = MapUtils.newHashMap();
}
sharedVars.put("ctxf", "/web/f");
// sharedVars.put("你的全局变量名2,如ctxStatic2", '你的全局变量值如ctxPath/static2');
this.groupTemplate.setSharedVars(sharedVars);
}
}
groupTemplate不能自己进行实例化,根据示例,通过BeetlUtils获取
然后需要在Application中调用
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
//xcf 增加上下文变量
new BeetlInitializingBean();
}
}
至此已成功添加上下文变量ctxf