0

我知道如何从 jsp 页面调用 ATG 小滴。下面的代码片段调用 GiftListSiteFilterDroplet。

 <dsp:droplet name="GiftlistSiteFilterDroplet">
    <dsp:param name="collection"  bean="/atg/userprofiling/Profile.giftlists"/>
     <dsp:oparam name="output">
      <dsp:getvalueof var="giftlists" param="filteredCollection" />

上面的代码将调用 GiftlistSiteFilterDroplet。但是,我试图找出如何从 java 类中调用相同的 droplet。ATG DUST 有一个 DropletInvoker 类。示例代码如下,用于调用 Switch 组件。

Nucleus mNucleus = NucleusTestUtils.startNucleusWithModules(
new String[] {"DAS","DafEar"}, this.getClass(),"/atg/dynamo/droplet/Switch");
DropletInvoker invoker = new DropletInvoker(mNucleus);
DynamoHttpServletRequest request = invoker.getRequest();
DropletResult result = null;
request.setParameter("value", "foo");
result = invoker.invokeDroplet("/atg/dynamo/droplet/Switch");

但是,GiftListSiteFilterDroplet 有一个 bean 参数。我想知道我们是否可以使用这个 DropletInvoker 传递这个 bean 参数。

我还想知道是否有任何方法可以在不使用 ATG DUST 组件的情况下调用 droplet。是否有任何通用方法可以调用任何液滴并将输入参数传递给它?

4

1 回答 1

2

atg.service.collections.filter.droplet.CollectionFilter 是组件的类/atg/commerce/collections/filter/droplet/GiftlistSiteFilterDroplet

只需调用getFilter()类中的方法

参考:- https://docs.oracle.com/cd/E23095_01/Platform.93/apidoc/atg/service/collections/filter/droplet/CollectionFilter.html

https://docs.oracle.com/cd/E26180_01/Platform.94/ATGCommStoreGuide/html/s1712collectionfilter01.html

谢谢

于 2016-01-21T11:20:00.893 回答