OpenCms 如何在模版里面读取图片文件字节流呢?
可以参考我下面这段代码:
首先是.xsd文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xsd:include schemaLocation="opencms://opencms-xmlcontent.xsd"/>
<xsd:element name="TestNewss" type="OpenCmsTestNewss"/>
<xsd:complexType name="OpenCmsTestNewss">
<xsd:sequence>
<xsd:element name="TestNews" type="OpenCmsTestNews" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="OpenCmsTestNews">
<xsd:sequence>
<xsd:element name="Title" type="OpenCmsString" />
<xsd:element name="Date" type="OpenCmsDateTime" />
<xsd:element name="Text" type="OpenCmsHtml" />
<xsd:element name="Image" type="OpenCmsVfsFile" minOccurs="1" maxOccurs="3"/>
<xsd:element name="Wap" type="OpenCmsBoolean"/>
</xsd:sequence>
<xsd:attribute name="language" type="OpenCmsLocale" use="required"/>
</xsd:complexType>
<xsd:annotation>
<xsd:appinfo>
<resourcebundle name="org.opencms.testnews.workplace"/>
<preview uri="${previewtempfile}" />
<!-- 验证开始,验证标题(Title)不能为空 -->
<validationrules>
<rule element="Title" regex="^.*$" message="${key.editor.errormessage.TestNews.mustnotempty}"/>
<!-- 验证结束 -->
</validationrules>
<mappings>
<mapping element="Title" mapto="property:Title" />
</mappings>
<defaults>
<default element="Date" value="${currenttime}"/>
</defaults>
</xsd:appinfo>
</xsd:annotation>
</xsd:schema>
可以看到image不止一个,所以就要使用cms:contentloop和cms:contentshow来获得所有图片的地址。
<cms:contentload collector="singleFile" param="%(opencms.uri)" editable="true">
<!-- 循环获得所有图片的src -->
<cms:contentloop element="Image">
<c:set var="imgSrc"><cms:contentshow /></c:set>
<%
String imgSrc = pageContext.getAttribute("imgSrc").toString();
imageArr.add(imgSrc);
%>
</cms:contentloop>
<%
CmsJspActionElement cms = new CmsJspActionElement( pageContext, request, response );
CmsObject cmso = cms.getCmsObject();
//获得第一张图片的字节数组
CmsFile file = ( CmsFile )cmso.readFile( imageArr.get(0).toString() );
byte[] buf2 = file.getContents();
%>
关键是:
CmsFile file = ( CmsFile )cmso.readFile( imageArr.get(0).toString() ); 这一句。
分享到:
相关推荐
《OpenCms开发指南》:深入理解与定制OpenCms OpenCms是一款开源的内容管理系统,旨在为企业级网站提供高效、灵活的管理解决方案。由Alkacon Software开发,OpenCms支持多语言、多站点管理和内容版本控制等功能,是...
- **高级功能**:涉及工作流管理、多语言支持等内容,帮助用户深入了解并充分利用OpenCMS的强大功能。 - **案例研究**:通过实际案例分析,展示如何运用OpenCMS解决特定问题和实现特定目标。 #### 五、作者背景与...
`system`目录下的文件结构可能与OpenCMS的模块结构相对应,比如`localization`子目录可能包含不同语言的翻译文件,`templates`可能有汉化的页面模板,而`classes`则可能包含汉化后的Java类。 在使用这个汉化包时,...
Opencms提供了灵活的工作流、权限管理、版本控制以及与各种数据库和Web服务器的集成。 1.2 环境搭建步骤 在开始使用Opencms之前,你需要搭建一个合适的开发环境。这通常包括安装Java Development Kit (JDK),配置...
2. **资源管理**:OpenCMS 提供了强大的资源管理功能,包括文件、图片和其他媒体资源。Java API 允许开发者对资源进行上传、下载、移动、重命名和删除操作,同时支持版本控制和访问权限设置。 3. **工作流引擎**:...
"manifest.xml" 文件是 OpenCms 中一个重要的配置文件,它通常包含了模块的信息,如模块的名称、版本、依赖关系等。在 OpenCms 中,模块是代码和资源的集合,用于扩展或修改系统的功能。通过编辑 manifest.xml,...
在OpenCMS中,"system"通常是存放全局资源的地方,比如主题、样式表、JavaScript文件、图片和其他媒体资源。开发者或管理员可以在这个目录下管理全局可复用的元素,确保在整个网站中的一致性。 关于OpenCMS模板的...
此外,还介绍了资源管理,包括文件和图像的上传、版本控制和权限管理。 4. **工作流管理**:OpenCms支持复杂的工作流程,允许用户定义内容审批流程。文档中会解释如何设置和定制工作流程,确保内容在发布前经过适当...
总之,《OpenCms 7 Development》是OpenCms开发者必备的参考资料,无论你是初学者还是有经验的开发者,都能从中获取到丰富的知识和实践技巧,从而提高你在OpenCms项目上的开发效率和质量。通过深入学习,你将能够...
4. **资源管理**:所有上传的文件和图片都会被统一管理和组织,便于查找和引用。 5. **多语言支持**:除了中文,OpenCms还支持多种语言,方便搭建多语种网站。 6. **集成能力**:可以与各种外部系统集成,如电子...
在OpenCms中,模块是功能的容器,可以包含页面、文件、样式表、JavaScript、图片等。它们通过JAR文件实现,包含XML配置文件来定义模块的行为和结构。 3. **创建模块** - **模块命名**:首先,为你的模块选择一个...
3. 内容管理:OpenCMS提供了一个用户友好的界面,供内容编辑者创建、修改和发布文本、图片、视频等资源。你可以使用富文本编辑器进行内容编辑,同时利用版本控制功能管理不同版本的内容。 4. 工作流程:OpenCMS支持...
OpenCms提供了强大的功能集,包括内容管理、工作流、版本控制等,非常适合企业和组织用来构建和维护其官方网站或内部平台。 对于初次接触OpenCms的用户来说,可能会遇到一些困惑,比如如何开始使用、如何创建自己的...
这些子目录中的文件可能是XML配置文件、图片、CSS样式表或者本地化语言文件(如lang.properties),它们负责替换或添加中文语言元素。 在安装和使用"opencms9 汉化包"的过程中,需要注意以下几点: 1. **备份原有...
5. **工作流管理**:讨论OpenCMS的工作流系统,用于审批和发布内容的流程。 6. **资源管理**:涵盖如何上传、组织和管理网站的文件资源,如图片、文档和链接。 7. **模块开发**:对于开发者,会提供关于如何扩展...
标题中的“opencms配置去掉2个opencms”指的是在OpenCms系统中,可能有用户想要移除或禁用两个特定的OpenCms组件或功能,可能是出于优化性能、减少冗余或者简化系统的考虑。OpenCms是一款开源的内容管理系统,它允许...
- **下载OpenCMS**:从官方网站或其他可信源获取最新版本的OpenCMS源码或二进制包。 - **数据库准备**:根据你的需求选择合适的数据库,并创建OpenCMS所需的数据库和用户。 - **解压部署**:将下载的OpenCMS文件解压...
作为开源项目,OpenCms拥有活跃的社区,开发者可以在论坛上交流问题、分享经验,获取帮助和支持。 总结起来,OpenCms 10.0.1源码包提供了一整套内容管理解决方案,包括核心功能、开发工具和社区支持。通过深入学习...
9. **故障排查与日志分析**:最后,手册通常会包含一些常见问题的解决方法,以及如何解读和分析OpenCms的日志文件,以帮助用户快速定位并解决问题。 通过深入阅读OpenCms中文用户手册,无论是新手还是经验丰富的...