freemarker java类_在freemarker使用java类方法
1?要想使用Freemarker支持的自定義方法,需要實(shí)現(xiàn)freemarker.template.TemplateMethodModel接口或?TemplateMethodModelEx接口
參考示例如下:
java 代碼:
public class Object2HashMap implements TemplateMethodModelEx {
private static final Logger logger = LoggerFactory.getLogger(Object2HashMap.class);
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public Object exec(List arguments) throws TemplateModelException {
Collection collection = (Collection) DeepUnwrap.unwrap((TemplateModel) arguments.get(0));
String keyProperty = arguments.get(1).toString();
String valueProperty = arguments.get(2).toString();
HashMap result = new HashMap();
if (collection == null) return result;
for (Object object: collection) {
try {
Object key = PropertyUtils.getProperty(object, keyProperty);
Object value = PropertyUtils.getProperty(object, valueProperty);
result.put(key, value);
} catch (Exception e) {
logger.error("處理異常", e);
}
}
return result;
}
}
freemarker使用示例,通過new()創(chuàng)建該對(duì)象。參考示例是 將wsdl的擴(kuò)展字段 key,value值放到HashMap中。
chineseAmount = "com.ccic.gateway.core.freemarker.encoder.ChineseAmountEncoder"?new()
object2hash = "com.ccic.gateway.core.freemarker.encoder.Object2HashMap"?new()
insuredExtendHash = object2hash(payload.responseBody.policy.extend, "key", "value")
>
取值:${(insuredExtendHash.ApproverCName)!}
總結(jié)
以上是生活随笔為你收集整理的freemarker java类_在freemarker使用java类方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php json获取get请求,PHP简
- 下一篇: windows如何生成ssh密钥