使用ISSLOT标签获取广告位的位置

问题描述

实际上,我正在使用isslotiterator,并且必须使用循环循环来获取具有属性counter的每个广告位项目的位置。

我想知道是否可以通过<isslot>获得职位。 想象一下,我有一个包含3个条目的插槽。

因此,当我在广告位项目ISML中调用<isslot>时,我可以这样做: #Pagelet:位置#

那么结果是:1/2/3

解决方法

不幸的是,position不是类型Pagelet的特征。如果成功完成此操作,则需要使用PageletAssignment。因此,您需要使用Pagelet:Position来代替PageletAssignment:Position

但是

isslot正在为您的“广告位项目ISML”准备一个渲染字典,其中不包含导致该“广告位项目”的分配。它仅包含项目本身(也就是小页面)。原因是广告位可以定义Pagelet Pipeline,从而可以完全动态地确定分页,而无需分配。

我的建议:要么将isslotiteratorAssignmentsAlias一起使用(简单),要么使用在您的广告位的广告位定义中定义的Pagelet管道(更复杂)。

,

不,我认为这是不可能的。 <isslot>不会将位置信息传递给小页面,而只是呈现它。为了更好地控制广告位项目的呈现方式,引入了isslotiterator标签。

如果您不想使用计数器,则可以从SlotPageletAssignment对象获取位置信息。 看看演示主页上的Carousel组件。

app_sf_responsive_cm/release/templates/default/component/common/Carousel.isml

您可以看到他们使用AssignmentsAlias键来获取SlotPageletAssignment

<isslotiterator Slot="#Pagelet:SubSlot("app_sf_responsive_cm:slot.carousel.items.pagelet2-Slot")#" AssignmentsAlias="CarouselPageletAssignments">
<isloop iterator="CarouselPageletAssignments" alias="CarouselPageletAssignment" counter="i">
    #CarouselPageletAssignment:Position# - #CarouselPageletAssignment:getSubPagelet#<br/>
</isloop>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...