当前位置: 首页 > 知识库问答 >
问题:

如何在cq5中基于路径创建目录?

胡劲
2023-03-14

我有一个String,它是页面的路径,例如/content/xperia/public/事件编辑器。我正在收集此页面的XML并将其保存到DAM,但我想将其保存在/content下的类似树结构中。

我尝试了以下代码

String page = "/content/xperia/public/events/eventeditor";
page = page.replace("/content", "/content/dam");
if (adminSession.nodeExists(page+ "/"+ "jcr:content")) {
    Node node = adminSession.getNode(page+ "/"+ "jcr:content");
    node.setProperty("jcr:data", sb.toString());                
} else {
    Node feedNode = JcrUtil.createPath(page,"nt:file", adminSession);           
    Node dataNode = JcrUtil.createPath(feedNode.getPath() + "/"+ "jcr:content", "nt:resource", adminSession);       
    dataNode.setProperty("jcr:data",sb.toString());
}

但它给出了以下错误

找不到{http://www.jcp.org/jcr/1.0}内容的匹配子节点定义

因为存储库中没有这样的路径。有没有一种方法可以让我即时创建一个目录。因为要保存这个文件,我需要在/content/dam下创建整个树xperia/public/events,然后保存eventeditor。xml在该目录中。

请建议。

共有1个答案

叶国兴
2023-03-14

你的代码有一些问题。JcrUtil。createPath(String absolutePath、String nodeType、Session Session)使用给定的nodeType创建所有不存在的中间路径。

这意味着所有节点xperia、public和事件都是使用nt: file类型创建的,而不是使用sling: OrderedFolder类型创建的。

您可以使用createPath(String ababolutePath, boolean createUniqueLeaf, String中介NodeType, String nodeType,会话,布尔自动保存)方法来指定要创建的中介节点的类型。

String page = "/content/xperia/public/events/eventeditor";
page = page.replace("/content", "/content/dam");
page += ".xml";

if (adminSession.nodeExists(page+ "/"+ "jcr:content")) {
    Node node = adminSession.getNode(page+ "/"+ "jcr:content");
    node.setProperty("jcr:data", sb.toString());                
} else {
    Node feedNode = JcrUtil.createPath(page, true, "sling:OrderedFolder", "nt:file", adminSession, false);           
    Node dataNode = feedNode.addNode("jcr:content", "nt:resource");       
    dataNode.setProperty("jcr:data",sb.toString());
}

adminSession.save();
 类似资料:
  • 路径文字是指沿着开放或封闭的路径排列的文字。当您水平输入文本时,字符的排列会与基线平行。当您垂直输入文本时,字符的排列会与基线垂直。无论是哪种情况,文本都会沿路径点添加到路径上的方向来排列。 在路径上输入文本 执行下列操作之一: 要沿路径创建横排文本,请选择文字工具 或路径文字工具 。 要沿路径创建直排文本,请选择直排文字工具 或直排路径文字工具 。 (可选)在“控制”面板、“字符”面板或“段落”

  • 问题内容: 我有一个column ,一列和作为实例化路径的一列。 看起来像 我需要根据此表进行一些查询。 我需要做的查询是 选择所有9个孩子 可以正常工作,直到您将ID替换为1或19,因为开头没有ID 。 将选择数字以1结尾的所有行,因此1、11、21、31、211等 将在第1行或第19行中正常工作 所以测试员; 我能提出最好的建议吗? 选择9,但没有子儿的直接孩子 对于这个测试仪; 会很好的工作

  • 我在Eclipse web-app项目中有一个java类生成XML文件。这个xml文件将用于通过AJAX调用在JSP页面中显示其内容。假设我想导出该项目并将其发送给另一个用户,然后该用户将在另一台PC上使用该项目。我如何在项目目录中创建xml文件,即使我不知道它在新计算机上的路径?

  • 问题内容: 我正在开发一个项目,该项目正在创建一个类来运行http客户端请求(我的类充当客户端)。它接受一个url和一个请求方法(GET,POST,PUT等),我希望能够解析该URL并根据它是https还是http打开HttpsURLConnection或HttpURLConnection(假定给定的url始终是正确)。 如果我执行以下操作: 然后,这将自动创建一个可以同时接受http和https

  • 我的目标是开发一个单一的骆驼路线来映射这些服务器,接受路径中服务器的名称。类似于这样: 我的(简化且不起作用)Blueprint.xml: 问题是,我不知道如何从路径中移除/center、/north或/south,因此头部被传递给目标服务,而目标服务不知道如何处理它。调用: