主题:函数调用问题 registerFunctionPackage

er916340246 2018年09月06日 52

项目引用:

 <dependency>
    <groupId>com.ibeetl</groupId>
    <artifactId>beetl-framework-starter</artifactId>
    <version>1.1.60.RELEASE</version>
</dependency>
public class BeetlConfiguration extends BeetlGroupUtilConfiguration {

    @Autowired
    Environment env;

    @Autowired
    ApplicationContext applicationContext;

    @Autowired
    DictSelectorTag dictSelectorTag;



    @Override
    public void initOther() {
        groupTemplate.registerFunctionPackage("shiro", new ShiroExt());
        groupTemplate.registerFunctionPackage("tool", new ToolUtil());
        groupTemplate.registerFunctionPackage("kaptcha", new KaptchaUtil());
        groupTemplate.registerTagFactory("dictSelector", new TagFactory() {
            @Override
            public Tag createTag() {
                return dictSelectorTag;
            }
        });

        groupTemplate.registerFunction("env", new Function() {
            @Override
            public String call(Object[] paras, Context ctx) {
                String key = (String)paras[0];
                String value =  env.getProperty(key);
                if(value!=null) {
                    return getStr(value);
                }
                if(paras.length==2) {
                    return (String)paras[1];
                }
                return null;
            }

            protected String getStr(String str) {
                try {
                    return new String(str.getBytes("iso8859-1"),"UTF-8");
                } catch (UnsupportedEncodingException e) {
                    throw new RuntimeException(e);
                }
            }
        });
    }
}

页面调用:image.png

后台报错:

image.png

问题:请问我哪里出问题了?我写的有问题吗?

闲大赋 2018年09月06日

不太确定你这么写,是否会被初始化,既然你用springboot,实际上可以换一个初始化方法 

https://gitee.com/xiandafu/Spring-Boot-2.0-Samples/blob/master/4_views/ch4.beetl/src/main/java/com/bee/sample/ch4/conf/BeetlExtConfig.java

er916340246 2018年09月07日

之前的果然没有执行,改成你这样可以了,感谢