在Sightly模板语言中,对于Adobe AEM6(CQ),如果条件为真,如何在不重复大量代码/逻辑的情况下,如何向元素添加属性?
例如
<ul data-sly-list="${items}" ${if condition1} class="selected"${/if}>
<li${if condition2} class="selected"${/if}>
Lots of other code here
</li>
</ul>
Run Code Online (Sandbox Code Playgroud) 我正在使用Day CQ.我想使用Felix控制台中提供的连接池将一些数据存储在SQL Server数据库中.我可以通过使用在defineObjects标记中定义的SlingScriptHelper类型的"sling"对象从JSP执行此操作
sling.getService(DataSourcePool.class).
Run Code Online (Sandbox Code Playgroud)
但是,我想使用在OSGi包中创建的servlet来处理来自客户端的请求.servlet没有defineObjects标记,因此未定义"sling"对象.我没有看到在servlet中创建有效的SlingScriptHelper对象的方法,但似乎必须可行.
有办法吗?
我有一个基本的java使用类对象,它扩展了WCMUSE和一个简单的hashmap方法 - 在明显的代码中 - 我有类似的东西
$ {}项
$ {} item.key
$ {} item.value
不起作用 - 如何在明显的代码中返回键/值对
我只是想知道jcr:primaryType和jcr:mixinTypes之间有什么区别,为什么要使用jcr:mixinTypes呢?这意味着什么?如果你检查crx中的/ content/dam文件夹,它将jcr:primaryType属性值显示为sling:OrderedFolder和jcr:mixinTypes as mix:lockable,rep:AccessControllable其中jcr:primaryType表示这是一个sling文件夹但是为什么是mixin类型.还浏览了这些文档http://www.day.com/specs/jcr/1.0/6.7.4_Primary_and_Mixin_Node_Types.html http://www.day.com/specs/jcr/1.0/6.7.5_Special_Properties_jcr_primaryType_and_jcr_mixinTypes.html但还没有不太了解差异.
谢谢.
在Sightly/AEM6中,当包含一个parsys组件时,如何设置"Drag Components Here"(cq:emptyText)使用本地化字符串的文本?我有几个parsys组件作为自定义组件的子组件,并且每个组件需要不同的文本(例如,在此处拖动图像组件,在此处拖动链接组件).
我正在查看sightly中使用的表达式选项.我尝试了下面的代码行,但似乎只是在页面上呈现文本,有人可以提供一些选项和一些很好的例子.
${'Assets' @ i18n, locale='fr-CH', hint='Translation Hint'}
${'Page {0} of {1}' @ format = [count,total] }
Run Code Online (Sandbox Code Playgroud)
我已经尝试并理解下面的代码来包含parsys
<div data-sly-resource ="${@path='question_list', resourceType='wcm/foundation/components/parsys'}"></div>
Run Code Online (Sandbox Code Playgroud)
此外,我可以从中获取数据狡猾的[元素]的整个列表.
谢谢
我在AEM6中使用新的语言来使用模板渲染我的组件,在我的组件中有一个视频,它使用JWPlayer插件,需要以下代码来启动视频:
<div id='playerpwSIOjcRZrCa'></div>
<script type='text/javascript'>
jwplayer('playerpwSIOjcRZrCa').setup({
file: '//www.youtube.com/watch?v=123456',
title: 'Video title',
width: '100%',
aspectratio: '16:9'
});
</script>
Run Code Online (Sandbox Code Playgroud)
但我想让Youtube变量动态化,以便用户可以更改作者中的id,所以在videoPath(youtube id)中传递了以下模板:
<template data-sly-template.player="${@ videoPath}">
Video Id: ${videoPath}
<script src="//jwpsrv.com/library/HjcD1BZoEeS7ByIAC0MJiQ.js"></script>
<div id='playerpwSIOjcRZrCa'></div>
<script type='text/javascript'>
jwplayer('playerpwSIOjcRZrCa').setup({
file: '//www.youtube.com/watch?v=' ${videoPath},
title: 'Video title',
width: '100%',
aspectratio: '16:9'
});
</script>
</template>
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是标签中的$ {videoPath}没有呈现id作为模板顶部的id.
有没有办法使用明亮的模板解决这个问题?
我正在使用最新的AEM6(以前的CQ)开发一个新站点.最初,您可以将图像/视频拖动到使用JSP的组件dropTarget中设置的组件放置区域.
但是,由于Sightly templating现在是构建组件而不是JSP的首选方法,因此仍然可以在Sighlty模板中使用dropTarget吗?
我有一个关于使用Sightly访问组件的子节点的问题.我有一个模板,它使用data-sly-resource引入一个基本的图像组件,就像这样.
<div class="${wcmmode.edit ? 'image-edit image' : 'image'}" data-sly-resource="${ 'heroImage' @ resourceType='/libs/foundation/components/image', appendPath='image', selectors='fileReference' }"> </div>
Run Code Online (Sandbox Code Playgroud)
我想要做的是根据图像组件是否实际具有图像集来更改css类.为此,我的计划是访问图像组件节点并读取其文件引用.沿途的东西
<h1>${ properties["heroImage"] }</h1>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用.我的问题是如何从我的模板中访问heroImage资源的fileReference,将其视为子节点.
谢谢,哈利
有一种Page接口的方法可以用来轻松迭代子进程.
我想以递归方式迭代所有后续的子节点.
有一个重载方法listChildren(Filter,Boolean)可以做到这一点......如何从这个方法调用这个方法?我的意思是如何修改上面提到的标签以递归方式进行.
我创建了一个getmyPages()返回的Java类方法iterator<Page>.现在在HTML页面中,我能够实例化该类并访问该类的其他属性.
但是,我希望迭代这个迭代器的方式currentPage.listChildren工作.....
因为currentPage.listChildren回报iterator<Page>
我也回来了.
但是我无法......我正在打印的HTML标签是空的.
我想从CQ5托管restful webservice.基本上,目的是根据修改日期,用户状态等一些参数将CQ5中的所有用户暴露给外部系统.我经历了https://chanchal.wordpress.com/2015/01/11/using-jax- rs-and-jersey-to-write-restful-services-in-osgi-apache-felix-adobe-cq5aem /因为我只能在网上找到这篇文章,但由于我是初学者,我无法实现它.需要在CQ5中实现此类RESTful Web服务的指导