发布日期:2023-03-31来源:武汉北大青鸟武汉校区作者:admin
武汉北大青鸟java知识大讲堂:
1.这货原来叫EL表达式
EL Extended Language,JSP的一种语言标记。大致是${}这种格式。
JSTL支持EL表达式,并包含了一些隐式对象,见:http://baike.baidu.com/view/53769.html#3
2.freemarker
freemarker是个很蛋疼的东西,Template.process(String ,Object)方法把模版html和data混合起来。data应该是用的反射,把所有get方法都取出来,其中数据就是数据了,还有一种叫TemplateMethodModel的类型,这是freemarker的方法。
public interface TemplateMethodModel extends TemplateModel {
public Object exec(List arguments) throws TemplateModelException;
}
这个方法传入一个List,传出是处理后的结果(尽量写成String吧!)但是这方法传入传出都是Object,因此难免做成迷惑,实际上,arguments的List元素类型只能是String,如果你不相信在哪里做了一个类型转换,例如:(Date)arguments.get(0),那么模版渲染时会给你抛出ClassCastException。
解决办法:实现这个接口TemplateMethodModelEx,这个接口中List元素解出来是StringModel类型,这时候使用StringModel.getWrappedObject(),取出来,再做类型转换,OK!(武汉北大青鸟)
Copyright (c) 2006-2023 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.