在整个过程中,为了更精细地描述对象格式,为了便于后续渲染理解最终结果的格式,始终传递相应参数的模式信息,并且该过程也是基于对转换过程进行调整和处理. 这样做的目的是允许后续数据渲染以更通用的方式使用结果数据.
此过程也可以用xml描述,请参阅以下内容
<root>
<dp key="receiverFullAddress" name="receiverFullAddress" title="收货人详细地址" dataType="STRING" order="55"/>
<!-- 提取里面的内容 -->
<t class="nestRollupKeyMapTransformer" key="trade_fullinfo_get_response.trade"/>
<!-- 下划线转驼峰 -->
<t class="allCaseLowerUnderscore2CamelKeyMapTransformer"/>
<!-- 下载链接转换 -->
<t class="docMapTransformer" key="picName"/>
<!-- 地址拼接 -->
<t class="scriptMapTransformer" key="receiverFullAddress" script="receiverCountry+receiverState+receiverCity+receiverDistrict+receiverTown+receiverAddress"
keyProperty:ref="receiverFullAddress"/>
<t class="allToStringMapTransformer" />
</root>
数据呈现
渲染过程已经获得了结果信息和相应的架构格式,可以根据实际业务需求进行显示. 在实际操作中,它可以呈现为json(直接调用对象. toJson),也可以呈现为html或其他字符串格式. 在示例中,freemarker用于数据呈现. 同时,为了使渲染过程更了解结果信息,最终结果将对象和模式封装在一个统一的映射中,以便ftl可以直接使用此对象信息.
同时,考虑到相同的源过程,可能会有许多不同的渲染场景,因此在功能上介绍了键的概念,即在同一组中,可以使用多个不同的键来描述渲染过程. 甚至多个过程的数据也被组合在一起以形成一个大型的组呈现过程. 有关示例,请参考示例中的两个不同的单元测试.
//指定场景进行转换并渲染 propertyTransformService.transformAndPrint(groupKey, orderDefineKey, inputData()) 将整个组的多个场景一起进行转换并组合,最终以group的格式进行数据渲染 //propertyTransformService.transformGroupAndPrint(groupKey, inputData())
摘要
这个过程很容易描述,但是实际上有一些细节处理方法. 例如,如何连续调整和处理参数格式,如何将内部集合属性从单个对象输出到集合,以及如何转换转换器,如何解析和处理参数,等等. 非常通用的数据转换服务,具有重要的参考意义.
注意: 该作品使用科特林语言进行翻译说明(从Java通过idea进行了转换),单位验证类为: PropertyTransformServiceTest. 本文使用的第三方框架包括: spring,iflym系统,json处理,mvel,freemarker,testng.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-260136-2.html
台湾是美帝种在中国大地上的一块烂肉
那中国的现代级和旅沪级旅海级岂不更老
眼神很棒