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类方法相关推荐

  1. 生成验证码的java类_生成验证码的java类

    import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffere ...

  2. xsd 生成 java 类_如何从Java类生成XSD

    xsd 生成 java 类 In last few posts, we learned about Java JAXB and how to generate java class from XSD. ...

  3. groovy 使用java类_在java中使用groovy怎么搞 (java and groovy)

    什么是groovy? 一种基于Java虚拟机的动态语言,可以和java无缝集成,正是这个特性,很多时候把二者同时使用,把groovy作为java的有效补充.对于Java程序员来说,学习成本几乎为零.同 ...

  4. spring 加载java类_在Spring中基于Java类进行配置的完整步骤

    在Spring中基于Java类进行配置的完整步骤 发布于 2020-7-7| 复制链接 基于Java配置选项,可以编写大多数的Spring不用配置XML,下面 前言JavaConfig 原来是 Spr ...

  5. scala使用java类_使用Java和Scala将Play Framework 2应用程序部署到Openshift

    scala使用java类 几个星期, 马克·阿特伍德 ( Mark Atwood) , 豪尔赫·艾利斯 ( Jorge Aliss )和我塞巴斯蒂安 ·斯卡塔诺 ( SebastiánScarano) ...

  6. jaxb 生成java类_重用生成的JAXB类

    jaxb 生成java类 在本文中,我将演示如何利用XJC扩展来重用以前从XML模式生成的类. 当其他XML架构导入XML架构并且您不想每次都生成相同的类时,这很有用. 导入的架构(Product.x ...

  7. js文件 import java类_实现JS脚本导入JAVA类包

    本例演示怎样通过JS脚本导入JAVA类包,我们创建JS引擎后,通过eval方法调用 getScript() ,JS脚本中importPackage(java.util)为导入包. package aj ...

  8. delphi7 获取dll的类_跟我学Java内存管理----JMM精华终章(类加载器)

    1 类加载器 1.1 类的加载过程 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. (1)加载 就是指将class文件读入内存,并为之创 ...

  9. gradle生成java文件_使用Gradle for Java插件生成Java类

    我想使用Gradle任务为 Java 项目生成Java类,类似于Android插件如何BuildConfig.java使用buildConfig 表示法创建,例如: android { ... bui ...

最新文章

  1. 【BZOJ】1105: [POI2007]石头花园SKA
  2. Windows系统——VMTK安装教程
  3. python高阶函数闭包装饰器_Python_基础_(装饰器,*args,**kwargs,高阶函数,函数闭包,函数嵌套)...
  4. 广东48.6万人资产超600万 华东超600万人群最多
  5. Qt工作笔记-对connect的第五个参数的研究
  6. linux内核阻塞IO
  7. xtrabackup 2.4.3 BUG
  8. Glide在github上的jar包下载方法
  9. 数学建模之层次分析法(AHP)
  10. 图像特征提取之LBP算法
  11. 论文阅读:Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba
  12. Docker-基本命令和漏洞分享
  13. java工程师容易秃头吗_程序员更容易秃头?原因是什么?
  14. oracle ebs 提交请求,EBS Form开发中点击按钮提交请求报表的实现方式--fnd_request.submit_request...
  15. 神经网络入门经典书籍,人工神经网络书籍推荐
  16. 煮一壶清茶,悟一种人生
  17. Oracle查询优化改写2.0 第二章:给查询结果排序
  18. 一文实现:在python中调用matlab程序,保姆级安装windows环境下的matlab.engine教程
  19. Spring Boot自动装配过程解析及简单Demo演示
  20. 期货软件开发 期货分仓系统搭建

热门文章

  1. C++ Deque(双向队列
  2. Unity3D(UE4)加载倾斜摄影数据OSGB格式
  3. 图像检索在高德地图POI数据生产中的应用
  4. 使用 Flink Hudi 构建流式数据湖
  5. “不服跑个分?” 是噱头还是实力?
  6. 技术运维的经营大法——对话阿里云MVP熊昌伟
  7. 深度 | 打败围棋冠军后,机器智能下一步能战胜黑客吗?
  8. IPv6时代已来:双十一中的IPv6大规模应用实践
  9. 高性能开发,别点,发际线要紧!
  10. 智能可穿戴迎来长续航焕新活力 出门问问TicWatch Pro 3即将国内上市