freemarker java类_在freemarker使用java类方法
1 要想使用Freemarker支持的自定义方法,需要实现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()创建该对象。参考示例是 将wsdl的扩展字段 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)!}
freemarker java类_在freemarker使用java类方法相关推荐
- 生成验证码的java类_生成验证码的java类
import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffere ...
- xsd 生成 java 类_如何从Java类生成XSD
xsd 生成 java 类 In last few posts, we learned about Java JAXB and how to generate java class from XSD. ...
- groovy 使用java类_在java中使用groovy怎么搞 (java and groovy)
什么是groovy? 一种基于Java虚拟机的动态语言,可以和java无缝集成,正是这个特性,很多时候把二者同时使用,把groovy作为java的有效补充.对于Java程序员来说,学习成本几乎为零.同 ...
- spring 加载java类_在Spring中基于Java类进行配置的完整步骤
在Spring中基于Java类进行配置的完整步骤 发布于 2020-7-7| 复制链接 基于Java配置选项,可以编写大多数的Spring不用配置XML,下面 前言JavaConfig 原来是 Spr ...
- scala使用java类_使用Java和Scala将Play Framework 2应用程序部署到Openshift
scala使用java类 几个星期, 马克·阿特伍德 ( Mark Atwood) , 豪尔赫·艾利斯 ( Jorge Aliss )和我塞巴斯蒂安 ·斯卡塔诺 ( SebastiánScarano) ...
- jaxb 生成java类_重用生成的JAXB类
jaxb 生成java类 在本文中,我将演示如何利用XJC扩展来重用以前从XML模式生成的类. 当其他XML架构导入XML架构并且您不想每次都生成相同的类时,这很有用. 导入的架构(Product.x ...
- js文件 import java类_实现JS脚本导入JAVA类包
本例演示怎样通过JS脚本导入JAVA类包,我们创建JS引擎后,通过eval方法调用 getScript() ,JS脚本中importPackage(java.util)为导入包. package aj ...
- delphi7 获取dll的类_跟我学Java内存管理----JMM精华终章(类加载器)
1 类加载器 1.1 类的加载过程 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. (1)加载 就是指将class文件读入内存,并为之创 ...
- gradle生成java文件_使用Gradle for Java插件生成Java类
我想使用Gradle任务为 Java 项目生成Java类,类似于Android插件如何BuildConfig.java使用buildConfig 表示法创建,例如: android { ... bui ...
最新文章
- 【BZOJ】1105: [POI2007]石头花园SKA
- Windows系统——VMTK安装教程
- python高阶函数闭包装饰器_Python_基础_(装饰器,*args,**kwargs,高阶函数,函数闭包,函数嵌套)...
- 广东48.6万人资产超600万 华东超600万人群最多
- Qt工作笔记-对connect的第五个参数的研究
- linux内核阻塞IO
- xtrabackup 2.4.3 BUG
- Glide在github上的jar包下载方法
- 数学建模之层次分析法(AHP)
- 图像特征提取之LBP算法
- 论文阅读:Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba
- Docker-基本命令和漏洞分享
- java工程师容易秃头吗_程序员更容易秃头?原因是什么?
- oracle ebs 提交请求,EBS Form开发中点击按钮提交请求报表的实现方式--fnd_request.submit_request...
- 神经网络入门经典书籍,人工神经网络书籍推荐
- 煮一壶清茶,悟一种人生
- Oracle查询优化改写2.0 第二章:给查询结果排序
- 一文实现:在python中调用matlab程序,保姆级安装windows环境下的matlab.engine教程
- Spring Boot自动装配过程解析及简单Demo演示
- 期货软件开发 期货分仓系统搭建