【发布时间】:2019-11-25 14:53:35
【问题描述】:
我在 magnolia cms 中创建了一个名为 MyAction 的自定义操作。 我想获取执行操作的页面的节点名称。相反,我得到了一个空字符串作为页面名称。
这是代码:
package ch.xxx.module.versioning;
import info.magnolia.ui.api.action.Action;
import info.magnolia.ui.api.action.ActionExecutionException;
import javax.jcr.LoginException;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import info.magnolia.context.Context;
import info.magnolia.context.MgnlContext;
public class MyAction implements Action {
@Override
public void execute() throws ActionExecutionException {
String nodeName= "null";
Context context = MgnlContext.getInstance();
Session session = null;
try {
session = context.getJCRSession("website");
} catch (LoginException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RepositoryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//Get root node
try {
nodeName = session.getRootNode().getName();
} catch (RepositoryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Executed MyAction for node: " + nodeName);
}
}
【问题讨论】:
-
您的 Magnolia 版本是多少?
-
Magnolia 版本为 5.6.11
-
你做了什么:
nodeName = session.getRootNode().getName();正在获取根节点的名称 (/),该名称始终为空。
标签: magnolia