如何根据cq5中的路径创建目录?

2023-12-15

我有一个字符串,例如页面的路径/content/xperia/public/events/eventeditor。我正在生成此页面的 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

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

请建议。


您的代码存在一些问题。这JcrUtil.createPath(String absolutePath, String nodeType, Session session)使用给定的 NodeType 创建所有不存在的中间路径。

这意味着所有节点 xperia、public 和 events 都是使用类型创建的nt:file代替sling:OrderedFolder.

您可以使用createPath(String absolutePath, boolean createUniqueLeaf, String intermediateNodeType, String nodeType, Session session, boolean autoSave)方法,而是指定要创建的中间节点的类型。

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();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据cq5中的路径创建目录? 的相关文章

  • 触摸 UI 对话框中的默认值 - AEM/CQ

    对于经典 UI 有一个选项可以设置defaultValue对于字段 当用户拖动组件后第一次打开对话框时 会向用户显示该字段 如果用户清除对话框中的值并保存 则在编辑对话框时 字段的值不会再次显示 对于触摸 UI 对话框 找不到等效项defa
  • 从 WSL 2 内部访问在 Windows 中运行的本地主机 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在运行本地AEM服务器 in my Windows机 服务器正在运行本地主机 4502 我正在使用运行的 Ubuntu 发行版WSL 2为了我的发展 我想访问本地主机 4502在
  • 在一个 OSGi 实例中部署多个捆绑版本

    我在 CQ 中部署了三个应用程序 它们都依赖于一个捆绑包 例如 核心 核心正在经历重大改造 需要定义所有三个应用程序对不同版本核心的依赖关系 例如 A 将依赖于 core 1 0 B 将依赖于 core 1 5 C 将依赖 core 2 0
  • 我可以获得特定词典的完整 i18n 标签吗

    我面临 i18n 标签的问题 我的应用程序使用 Granite I18n get 函数在 js 前端读取一些 i18n 标签 整个字典下载为 libs cq i18n dict locale json 如 etc clientlibs fo
  • 如何在 cq 5.5 中配置 antisamy?

    我有 cq 5 5 项目 我想防止 XSS 攻击 根据这个linkcq 提供与 AntiSamy 项目的集成 请提供与 AntiSamy 集成的具体步骤 因为我真的找不到它 update 我应该在某个地方写这样的代码吗 import org
  • CQ5 中的 标签被替换为 标签

    我在用着富文本编辑器 with 杂项工具插件来编辑我的网站中的文本 但是当我打开 HTML 编辑器并创建这样的东西时 p strong Strong text strong p CQ立即将其重写为 p b Strong text b p 是
  • 创建新工作区

    Modeshape 文档的第 7 1 6 节说 您的应用程序现在可以使用标准 JCR 2 0 API 创建和删除工作区 JCR 2 0 文档说使用 Workspace createWorkspace String name 如何使用本文底部
  • 如何防止暴露 AEM 中的内容层次结构路径?我正在寻找 AEM 级别和调度程序级别的替代方案

    举个例子 你将如何实现 A 将 www mysite com 的点击翻译为 www mysite com en 并 b 将上面的 www mysite com en 翻译为 content mysite en html 这是一个完整的例子
  • javax.jcr.nodetype.ConstraintViolationException:没有匹配的属性定义:PROPERTY

    当我尝试为 JCR 节点设置属性时 出现错误 javax jcr nodetype ConstraintViolationException 没有匹配的属性定义 PROPERTY 我是 cq5 的新手 请问有人可以帮我解决这个错误吗 在jc
  • AEM 6 对话框中有条件显示/隐藏字段

    我正在使用简单的创作对话框构建一个相对简单的 AEM 组件 对话框的顶部是一个选择字段 当此选择字段设置为特定项目时 我希望对话框中的某些字段消失 我研究了 Foundation Carousel 组件的实现 它使用cq dialog dr
  • OSGi 捆绑包无法启动 - 无法解析 sun.reflect.generics.reflectObjects

    在对 AEM 项目的代码进行看似无关的更改后 我的包无法解析 检查日志后 我可以看到出现以下错误 22 04 2015 11 00 18 650 ERROR qtp1266495948 35 org apache felix http je
  • data-sly-use、data-sly-resource、data-sly-include 和 data-sly-template 之间有什么区别?

    有什么区别 data sly use data sly resource data sly include and data sly template 我正在阅读文档Sightly AEM我非常困惑 据我所知 data sly use用于添
  • 如何在使用 X 类型浏览字段浏览时隐藏某些路径?

    在我的组件对话框中 我使用browsefieldXType 使用户能够浏览页面树并选择页面
  • AEM 6.1 Sightly 基本表单提交并重定向到同一页面

    我尝试在 AEM 6 1 上执行以下操作 开发一个简单的表单 3 个输入字段 处理提交的值 并重定向到带有处理后的值 结果的同一页面 我能够将值提交到 servlet 并处理它们 业务逻辑 并将结果发送到 requestparamter 以
  • 从我的本地计算机附加文件以在 cq/AEM 中发送邮件

    我正在学习 AEM 并且正在满足一个要求 其中我能够发送电子邮件 但无法添加从我的计算机浏览的附件 要求 有一个用 HTML 制作的表单 可以从其中收集信息 并且有一个浏览按钮 可以从其中上传文件 文件上传后 应立即将包含表单内容和附件的电
  • 是否可以递归刷新 CQ5/AEM apache 调度程序中的目录?

    由于多租户情况下的特定项目 我有一个调度程序设置了相当深的统计文件级别 我希望找到一种能够递归刷新目录的方法 以模仿其他租户的更浅的统计文件级别 是否有调度程序刷新命令允许我显式删除内容目录 您可以通过向调度程序发送简单的 GET 请求来自
  • 通过sightly访问特定资源中的属性

    我想访问资源中的特定属性 主要资源有两个子资源 应用程序位于第一个资源中 我想从老二那里得到一份财产 我能找到类似的东西吗 resource parent child 1 valueMap title Thanks 首先 请注意孩子的顺序可
  • AEM DefaultValue 写入 JCR

    我注意到 当我为下拉列表设置 defaultValue 时 尽管当我第一次将组件添加到页面时在下拉列表中正确选择了它 但它不会将 defaultValue 写入相应的 JCR 直到我编辑组件并保存它 即使我只是打开相应的对话框并单击 确定
  • 使用 ECMA 脚本向节点(页面)添加新属性

    我需要在页面激活时向页面添加属性 我决定建立一个工作流程 在激活步骤之前执行相同的操作 我的自定义工作流程步骤 激活步骤之前的步骤 使用 ECMA 脚本来实现此目的 这是我到目前为止所拥有的 var workflowData granite
  • Cq5.5 将 servlet 过滤器应用于特定路径

    我正在 cq5 5 中开发自定义表单处理程序 一切都很顺利 我现在正在努力锁定一些安全性 我的任务之一是对表单处理程序路径实施请求限制过滤器 目前我有类似的东西 Component immediate true metatype true

随机推荐

  • 使用实体框架我想仅包含第一个子对象而不是子对象的子对象(子的子对象)

    使用实体框架我想仅包含第一级子对象而不是子对象的子对象 我有这两门课 public class BusinessesTBL public string ID get set public string FirstName get set p
  • 从基类到所有后代遍历类层次结构

    在我正在编写的 iOS 应用程序中 我想遍历类层次结构以列出所有子类的清单 我的意图是使用每个子类类型作为键 viaNSStringForClass 在字典里 我的动机是能够自动发现基类的所有变体 以便我可以调用与该类关联的方法 出于分工的
  • 如何使用下拉列表而不是所有者绘制样式更改组合框控件的外观高度?

    背景 在某个对话框中 有多个连续的控件 我希望它们都具有相同的表观高度 但是 对于具有 CBS DROPDOWNLIST 样式且没有 CBS OWNERDRAW 的组合框 我在更改表观高度时遇到了麻烦 问题 如何更改此类 DROPDOWNL
  • Slim 4 将所有路由放入控制器中,无需 $app

    我需要将所有注册的路由放入控制器中 在 slim 3 中 可以使用以下方式获得路由器 router container gt get router routes router gt getRoutes 使用 app 很容易 routes a
  • 可以在 C# 中使用带有非默认构造函数的单例吗?

    我正在为我的一个项目实施一个通知框架 因为我希望它非常通用 所以用户可以使用多个传输层 这样他就不需要真正关心使用一种交付方法 比如说 WCF 或另一种交付方法 例如 ActiveMQ 用户访问的接口当然与交付方法 WCF 或 Active
  • Doc 文件无法从 asp.net 中的 UserControl 下载

    我有用户控件 其中包含带有候选数据的网格 有一个带有模板字段链接按钮的列候选名称 我附加了一个 rowcommand 事件 我正在该事件上下载一个 word 文件 我有下载文档文件代码 可以从简单的网页下载我的文档文件 但此代码不适用于用户
  • 在最后一帧停止 CSS3 动画

    我有一个 4 部分的 CSS3 动画 点击时播放 但动画的最后一部分是为了将其从屏幕上移开 然而 一旦播放完毕 它总是会回到原来的状态 谁知道我怎样才能将其停止在最后一个 CSS 框架上 100 或者如何在播放后删除它所在的整个 div k
  • 在命令行上使用 OSX Leaks 进行 C 程序?

    谁能给我任何运行 OSX 的简单语法leaks用于检测已编译的 C 程序中的内存泄漏的工具 我使用的是 10 8 所以我遇到了严重的兼容性问题valgrind 我读过的关于 XCode 的泄漏 工具的大部分内容都涉及 XCode 环境 这不
  • Typescript 中的方括号与表达式后的关系

    Typescript 中以下两个方括号符号有区别吗 尝试了几个场景 看起来它们是等效的 谢谢你 interface test a string b string const x test a aaaa b bbbb const y test
  • Vincent 图没有显示,没有收到错误

    由于某种原因 当我尝试与文森特一起绘制某些内容时 我得到以下内容
  • 将复选框状态传递给 PHP

  • Java将文件附加到zip中[重复]

    这个问题在这里已经有答案了 可能的重复 使用 Java 将文件附加到 zip 文件 我有一个 zip 文件 其中包含一些文件夹 但重要的一个是 dir 其中有另一个名为 文件夹 的文件夹 该文件夹包含许多我需要能够更新的文件 我现在在 zi
  • 画布上的绘画随着时间的流逝而褪色|奇怪的 alpha 分层行为

    我正在一块未被清除的画布上绘画 并使其随着时间的推移画布逐渐褪色为纯色 或者逐渐褪色以显示后面的图层 我的第一直觉是简单地在每帧中用低 Alpha 值填充绘图上的一个矩形 以便填充颜色逐渐累积 使绘图逐渐淡出 但我发现了一些奇怪的行为 至少
  • 如何将时间戳字符串转换为纪元时间?

    我有格式的时间戳2017 18 08 11 45 30 345 我想将其转换为纪元时间 所以我正在执行以下操作 String timeDateStr 2017 18 08 11 45 30 345 DateTimeFormatter dtf
  • Kotlin 链接来自不同输入流的多个序列?

    假设我想解析这样的大文件 val iStream MyFile class java getResourceAsStream largeFile txt iStream bufferedReader Charsets UTF 8 useLi
  • 在 VB .NET 中生成所有真实组合

    我需要在 VB NET 中生成所有组合 不是排列 我一直在搜索 发现的只是排列 有人说是组合 但当我尝试时 所有都是排列 我需要的是从字符串数组生成组合 Dim data array As String one two three four
  • pyspark数据框过滤或包含基于列表

    我正在尝试使用列表过滤 pyspark 中的数据帧 我想根据列表进行过滤或仅包含列表中具有值的记录 我的下面的代码不起作用 define a dataframe rdd sc parallelize 0 1 0 1 0 2 1 2 1 10
  • 在 JavaScript 中将连字符的名称大写

    我需要在 javascript 中将名称大写 到目前为止我已经找到了这些方法 doesn t capitalize first letter after hyphen gt gives Bj rn martin str replace w
  • 获取大量应用程序图标会导致内存不足

    我创建了一个应用程序来加载所有已安装的应用程序 现在运行良好 但对于一些拥有大量应用程序的手机 平板电脑 我的应用程序会因内存不足而崩溃 以下是获取应用程序信息的源代码 String appName p applicationInfo lo
  • 如何根据cq5中的路径创建目录?

    我有一个字符串 例如页面的路径 content xperia public events eventeditor 我正在生成此页面的 XML 并将其保存到 DAM 但我想将其保存在类似的树结构中 content 我尝试了以下代码 Strin
Powered by Hwhale