Hybris技术学习——backoffice组件间数据传输

组件间数据传输

组件数据传输原理

  1. 要发送参数的组件定义数据输出槽
    backoffice不同页面之间的数据传输是通过definition.xml文件中定义的sockets进行传输。input为参数输入,output为参数输出。例如下面的通用搜索组件定义:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<widget-definition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:noNamespaceSchemaLocation="http://www.hybris.com/schema/cockpitng/widget-definition.xsd"
	id="com.hep.backoffice.widgets.base.lov">
	<name>搜索</name>
	<description>搜索</description>
	<defaultTitle>搜索</defaultTitle>
	<author>zhoubin</author>
	<version>1.0</version>
	<view src="lov.zul" />
	 <sockets>
		<output type="java.lang.Object" id="selectResult"/>
	</sockets> 
	<keywords>
		<keyword>Hepbackofice</keyword>
	</keywords>
	<controller class="com.hep.backoffice.widgets.widget.base.HepLovController" />
</widget-definition>

  ]其中selectResult为输出socket,即要把参数发送到具体的槽点:

com.hybris.cockpitng.util.DefaultWidgetController.sendOutput(String id, Object data)

  其中id即为definition.xml中定义的输出槽selectResult,即把数据输出到指定的槽点。

  1. 接收参数的组件定义数据接收槽
    同样在接收参数的目标组件中要定义对应的input sockets用于接收参数:
	<sockets>
		<input type="java.lang.Object" id="param"/>
	</sockets> 

  接受参数的目标组件接收参数主要通过定义@SocketEvent(socketId = “输入槽点”)注解在方法上进行参数的接收,方法参数即为要接收的参数。
示例:

    @SocketEvent(socketId = "param")
    public void getParam(final Object param){
    //业务代码
    }
  1. 连接输出组件与输入组件,并指定输出槽与输入槽
    最后还需要在{extname}-backoffice-widgets.xml中定义widget-connection将输出参数的组件和接收参数的组件,输出槽和接收槽连接起来即可:
 格式:	 <widget-connection sourceWidgetId="发送参数的组件" targetWidgetId="接收参数的组件Id" inputId="接受参数组件的接受数据的槽点" outputId="发送参数的组件中参数发送的槽点"/>
 示例:  <widget-connection sourceWidgetId="hepLov" targetWidgetId="hepEcCheck" inputId="paymentReturn" outputId="selectResult"/>
  1. 完成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值