java - 如何列出opencms中文件夹中的文件?

标签 java expression el formatter opencms

我需要在 opencms 中创建一个新的资源类型,其中有 1 个字段。该字段用于目标文件夹。 每次我从 VFS 选择一个文件夹并保存资源(xml)时,格式化程序都会呈现指定文件夹中的文件列表。

我设法创建了一个 jsp 文件,该文件将创建所需的文件列表,但仅对目标文件夹进行硬编码。我不知道如何从资源类型(xml)读取数据,我可以使用 el 表达式访问该数据。

最佳答案

我不确定这是否有效。请尝试一下。

<cms:formatter var="content" val="value">
    <cms:contentload collector="singleFile" param="${value.TargetFolder.stringValue}">
        <cms:contentshow element="Title" />
    </cms:contentload>
</cms:formatter>

value类型为Map<String, CmsJspContentAccessValueWrapper> 。您可以查看Javadoc查看您还有哪些其他可用方法。

我从以下位置获取了收集器: CmsDefaultResourceCollector.getSingleFile()

读取 XMLContent 的另一种方法是使用 Java。例如:

<c:set var="path" value="${value.TargetFolder.stringValue}"/>
<%
  String path = pageContext.getAttribute("path");
  CmsXmlContent xmlContent = CmsXmlContentFactory.unmarshal(jsp.getCmsObject(), path);
  xmlContent.getStringValue(jsp.getCmsObject(), "Title", locale);
%>

关于java - 如何列出opencms中文件夹中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42652473/

相关文章:

jsf - EL 中的 #{component} 到底是什么?

java - 增加3个变量

java - 需要一种以编程方式检查 Windows 服务状态的方法

java.net.MalformedURLException : unknown protocol: localhost at controller. RestController.addService(RestController.java:62)

c# - Unity3d:从 C# 对象执行任意 javascript

java - Minfiying CSS 破坏了嵌入的 EL 表达式

jsp - 参数 : implicit EL (Expression Language) object in JSP

java - 如何在没有标签的情况下选择 HTML 标签中的文本(JSoup)

javascript - while 循环中的条件表达式未按预期工作

r - 在 R 的 matplot 中写入 $^*$