beetl官网文档,
3.15. 定制输出占位符输出允许定制。如所有日期类型都按照某个格式化输出,而不需显式的使用格式化输出,或者为了防止跨脚本站点攻击,需要对类型为String的值做检查等,不必使用格式化函数,可以直接对占位符输出进行定制,代码如下PlaceholderST.output = new PlaceholderST.Output(){ @Override public void write(Context ctx, Object value) throws IOException { //定制输出 ctx.byteWriter.writeString("ok"+value!=null?value.toString:""); }};
//查阅代码发现
FastRuntimeEngine 这个类是jfinal集成beetl时使用的模板引擎。 然后自定义加入下面代码,最终发现缺少类。 public class MyRuntimeEngine extends FastRuntimeEngine { @Override public Program createProgram(Resource rs, Reader reader, Map<Integer, String> textMap, String cr, GroupTemplate gt) { Program program = super.createProgram(rs, reader, textMap, cr, gt); return program; } private void modifyStatemetn(Resource resource,Program program,GroupTemplate gt){ Statement[] sts = program.metaData.statements; //这里报没有这个类 StatementParser parser = new StatementParser(sts, gt, resource.getId()); parser.addListener(PlaceholderST.class, new PlaceholderSTListener()); parser.parse(); } }
想在 jfinal 里订制自己的模板引擎,具体需要怎样弄。有谁弄过,欢迎交流。
项目:jAdmin