Hybris Storefront 里搜索显示结果的实现原理
CRM
CRM 基于 WebClient UI 技术的搜索界面如下图所示:
Hybris
Hybris是怎么实现的?
我问过Hybris成都同事了,Hybris里没有CRM WebUI里F2的概念。所以只能靠自己人肉。
前面的issue讲到product template page,在里面找到用来实现product list的component。
然后找到这个pageination的实现:
在这里显示文本:
Spring Theme的语法:
The theme support provided by the Spring web MVC framework enables you to further enhance the user experience by allowing the look and feel of your application to be themed. A theme is basically a collection of static resources affecting the visual style of the application, typically style sheets and images.
和ABAP的Online Text repository一样:
Spring Theme也支持i18n:
占位符{0}会被arguments的实际值, 来自model里的searchPageData.pagination.totalNumberOfResults的值替换。
SAP SADL和SAP Hybris DTO, 以及SAP C4C的transformation object
When you need a simpler or more convenient format for some of the data to display in JSPs
上面是从help.hybris.com摘录出来的原话,解释为什么我们需要DTO.
简单来说,就是因为Service Layer定义的model格式和UI需要的格式不是完全一样,如果UI直接消费Service Layer的model,代码写起来非常难看,而且会产生UI layer和service layer的强耦合。
更general地说,可以把DTO看成SADL的实现方式之一,处于BO(service layer) 和UI layer之间, 作为UI(consumer layer)消费Service layer的桥梁:
Hybris的DTO通常以data.java结尾,在我安装的6.5.0.0.23546这一版本里一共有445个DTO:
一个DTO例子:
在CRM Genil layer的实现里,虽然没有明文提出DTO的概念,但是从Genil layer这些方法的signature能看出这种DTO的思路其实也是蕴含在其中的:把数据从genil layer的format CRMT_PRODIL_DATA转换成UI layer的COMT_PRODUCT_MAINTAIN_UI.
CL_CRM_PRODIL_LONGTEXT
- 点赞
- 收藏
- 关注作者
评论(0)