小编bon*_*612的帖子

在页面激活时启动工作流程而不激活CQ5中的页面

每当内容作者在页面上单击激活时,我都需要调用工作流程.然后,工作流将向管理员发送通知,然后管理员继续激活该页面.

让我用更详细的解释一下.这有两个部分

i)每当内容作者完成修改页面时,他将继续从sideadick或siteadmin上的页面属性中单击" 激活页面 ".通过这样做,他不会立即激活页面,而是调用工作流程.

ii)工作流程将向管理员发送通知,然后管理员决定激活该页面.这一点相当普通,所以这里没有问题.

所有这一切都是为了确保没有任何发布/激活,除非管理员已经审核过.

我尝试设置一个可以调用工作流的ReplicationEvent监听器.发生的事情是调用工作流之前页面已经激活; 一个发生ReplicationEvent只说后复制事件(即激活)发生(当然!).

如上所述,我需要确保在用户单击激活时实际未激活页面; 这意味着我需要修改激活按钮的功能.

我试过在网上查找,但一无所获,这让我相信CQ5的大多数siteadmin代码都是隐藏的,无法修改(并且有充分的理由).

那么还有什么人可以想到哪些可以帮助我实现我的要求?或者我应该把它作为一个失败的原因?

在此之前,感谢道歉

adobe aem

7
推荐指数
1
解决办法
5899
查看次数

如何从Java类访问组件属性

我正在开发一个组件,它需要一些属性(用户在运行时设置)才能按预期工作.

最初,我只是使用a properties.get('foo')从我的组件中获取所需的属性,但我正在尝试从组件jsp文件中删除所有脚本代码的痕迹.

如何在我的Java代码中获取此属性'foo'(在我的组件的运行时期间设置)?我记得在某处读过使用ValueMap是最好的方法,所以我尝试使用它: -

public static Map<String, Object> getResourceProperties(String path,
            SlingHttpServletRequest request) {
        ResourceResolver resourceResolver = request.getResourceResolver();
        Map<String, Object> props= new HashMap<String, Object>();
        Resource resource = resourceResolver.getResource(path);
        if (null != resource) {
            props.putAll(resource.adaptTo(ValueMap.class));
        }
        return props;
    } 
Run Code Online (Sandbox Code Playgroud)

这在我的jsp中: - <c:set var="refProperties" value="${xyz:getResourceProperties(properties.path,slingRequest)}" />

但这不会返回我想要的价值.

java taglib aem

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

aem ×2

adobe ×1

java ×1

taglib ×1