Java XWiki扩展:检测事件空间创建
根据这里的文档,我们可以看到,在xwiki java扩展中,我们可以拦截事件UserCreation,如下所示: 我想做同样的事情,但我想检测事件空间的创建(基本上是当你在你的维基中添加一个空间(基本上一个空间是一篇文章的主要根页面)时。但是我没有发现任何类似XWikiUsers的类用于该空间或页面 它不想使用velocity或groovy,但在纯java扩展中,我不知道,文档非常庞大,但很难找到我要找的内容。从技术上讲,每当在其下创建页面时(终端页面或Java XWiki扩展:检测事件空间创建,java,xwiki,Java,Xwiki,根据这里的文档,我们可以看到,在xwiki java扩展中,我们可以拦截事件UserCreation,如下所示: 我想做同样的事情,但我想检测事件空间的创建(基本上是当你在你的维基中添加一个空间(基本上一个空间是一篇文章的主要根页面)时。但是我没有发现任何类似XWikiUsers的类用于该空间或页面 它不想使用velocity或groovy,但在纯java扩展中,我不知道,文档非常庞大,但很难找到我要找的内容。从技术上讲,每当在其下创建页面时(终端页面或WebHome),都会创建一个“空间”
WebHome
),都会创建一个“空间”
所以你可以:
- 每次创建页面时都要执行查询(
,所以还没有DocumentCreatingEvent
),然后执行查询(请参阅),查看空间(与新文档的空间引用相匹配)是否与数据库中的现有空间或更深层嵌套空间相匹配……或者DocumentCreatedEvent
- 检查新创建的文档(
)是否具有名称DocumentCreatedEvent
,该名称在性能方面会更好,但如果您使用的是终端文档(即“WebHome”文档以外的其他文档,请参阅WebHome
public void onEvent(Event event, Object source, Object data)
{
XWikiDocument document = (XWikiDocument) source;
String wikiName = document.getDocumentReference().getWikiReference().getName();
DocumentReference userClass = new DocumentReference(wikiName, "XWiki", "XWikiUsers");
if (document.getXObject(userClass) != null) {
}