`
wangyi878750
  • 浏览: 187835 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

浅谈<cms:contentaccess>标签的使用

阅读更多

    OpenCms 7.02 新增加了一个非常有用的标签 <cms:contentaccess> ,但是好像官方一直没有给出它的用法的说明。那么今天就浅谈一下这个标签的用法。
    在官方的版本说明里面是这样说的:“Added <cms:contentaccess> tag for easy access to XML contents with the JSP EL inside a <cms:contentload> block.”
    也就是说,这个标签主要是让你很容易的在 <cms:contentload> 标签代码段里面使用 JSP 的 EL 表达式来访问 XML 结构化内容。
    那么,原来我们访问 XML 内容的时候是什么样一种方式呢?请看下面示例代码(更多的可以查看"/system/modules/org.opencms.frontend.templateone.modules/pages/"下面关于 news,jobs等类型的显示模板的页面代码):

    <cms:contentload collector="singleFile" param="%(pageContext.detailfile)" editable="true">
    ......
        <cms:contentshow element="Title" />
    ......
    </cms:contentload>

    当然,我举的这个例子可能是比较简单,大家应该都看得出来,就是用来显示文章的一个标题“Title”,也就是xml里面的"Title"节点的值。
    在 OpenCms 7.0.2 里面引入<cms:contentaccess>标签以后呢,我们就可以使用下面的方式来使用:

    <cms:contentload collector="singleFile" param="%(pageContext.detailfile)" editable="true">
    <cms:contentaccess var="content" />
    ......
        <c:out value="${content.value['Title']}"
    ......
    </cms:contentload>

    就象上面看到的,在<cms:contentload>代码段中使用 <cms:contentaccess> 标签以后,就可以直接使用类似 <c:out value="${content.value['Title']}" 这样的 JSTL 代码 <c:out> 以及 EL 表达式 ${content.value['Title']} 来输出得到的数据。

    也就是说,原来在 OpenCms 的标签,或 JSTL 里面使用 EL 表达式的时候,表达式使用的标量可能是个麻烦事情。就大家在 TemplateOne 的代码里面看到的那样,如果你想使用类似 <c:out value="${content.value['Title']}" 这样的方法输出数据,但是没有<cms:contentload> 可用的话,就必须向原来一样使用 <c:set var="Title" value="" /> 这样的语法来定义变量。

    可能在这个例子里面还不能体现出来所说的“easy access to XML contents”的好处。
    那么,当你使用 <cms:contentshow element="Title" /> 来输出标题的时候,如果标题为空的话,你如何判断呢?只好再去使用 <cms:contentcheck> 标签 <cms:contentcheck ifexists="Title"> 来判断了。而实际上这样的判断使用 JSTL 中的 <c:if test ...> 就可以做到。

    譬如,你可以使用
    <c:if test="${!content.value['Title'].isEmptyOrWhitespaceOnly}">
            <c:out value="${content.value['Title']}" />
    </c:if>
    来代替下面的这段代码:
    <cms:contentcheck ifexists="Title">
        <cms:contentshow element="Title" />
    </cms:contentcheck>

    这样效果会更好一点,为什么这样说呢?因为 contentcheck 的可选值只有:ifexists,ifexistsone,ifexistsall,ifexistsnone。也就是说煤你仅仅可以判断都这一步。而使用<cms:contentload>标签以后,你就可以有更多的选择。

    更重要的是,使用这个标签以后,你使用OpenCms做二次开发学习的标签可能就又少了几个,如果你对JSTL和EL已经很熟悉的话,恭喜你,你可以更方便的上手了。

    至于这个标签的更详细的用法,有兴趣的可以查看API中 org.opencms.jsp.util.CmsJspContentAccessBeanorg.opencms.jsp.util.CmsJspContentAccessValueWrapper 这两个相关的类,相信会游更大的收获。

   顺便说一下,我以前对标签不是很熟悉的时候,使用API来读取和操作XML内容,那可是相对麻烦的事情呢。
   所以说,OpenCms 还是越来越好用了。还是 java 开源内容管理系统的老大。所以,我推荐大家使用它!


我的相关日志:

2007-03-23 | [转]OpenCms for MySql 安装图解
2007-03-23 | [转][图文]OpenCms VFS plugin for Eclipse 安装与使用
2008-03-21 | <cms:contentload>标签的使用
2007-12-14 | <cms:editable>标签的使用
2007-12-13 | <cms:contentshow>标签的使用
2007-12-12 | <cms:contentloop> 标签的使用
2007-12-11 | <cms:contentinfo>标签的使用
2007-12-10 | <cms:contentcheck>标签的使用
2007-06-19 | OpenCms的<cms:info>标签
2007-04-16 | 再次讨论关于OpenCms的label标签的用法
2007-04-10 | 直接用OpenCms的API而不是标签来得到资源信息
2007-03-23 | [转]OpenCms JSP标签详解——cms:user标签


分享到:
评论

相关推荐

    Avaya™ Call Management System &#40;CMS&#41; Database Items and Calculations

    ### Avaya™ Call Management System (CMS) 数据库项与计算 #### 一、概述 Avaya™ Call Management System (CMS) 是一款专为电信企业设计的管理工具,它能够帮助企业监控并优化其通信网络的性能。该系统通过收集...

    os_system&#40;通用cms管理系统&#41;

    【os_system(通用CMS管理系统)】是一个基于Java技术栈,特别是Spring Boot框架构建的全功能内容管理系统。这个系统包括了数据库设计、前端用户界面以及后台管理功能,为内容的发布、管理和展示提供了一站式的解决...

    php标签大全(1)

    根据提供的文件信息,我们可以看到这些内容主要涉及到 PHP 标签及其在特定 CMS(内容管理系统)中的应用,这里可能是指基于 PHP 开发的 DedeCMS 内容管理系统中的自定义标签用法。接下来,我们将逐一解析这些标签的...

    NordicSemiconductor::Device:Startup:8.27.0

    Error #541: 'NordicSemiconductor::Device:Startup:8.27.0' component is missing (previously found in pack 'NordicSemiconductor.nRF_DeviceFamilyPack_NordicLicense')

    ASPCMS标签大全

    以上标签是ASPCMS中常见且重要的组成部分,通过合理使用这些标签,可以极大地提高网站的动态性、交互性和用户体验,同时简化开发过程,提升效率。对于开发者而言,熟悉并掌握这些标签的应用,是进行高效网站建设和...

    AspCms标签大全.txt

    ### AspCms标签大全解析 #### 一、站点基本信息标签 AspCms系统提供了丰富的站点基本信息标签,用于在页面上展示站点的基本属性。这些标签对于构建网站的基础框架至关重要。 1. **{aspcms:sitepath}**:表示网站...

    aspcms 标签大全

    ASPCMS是一款基于ASP开发的内容管理系统,它提供了一系列的标签供用户在模板制作时使用,以方便地调用网站信息和内容。以下是对ASPCMS标签的详细解释: 1. 网站通用标签: - `{aspcms:sitepath}`:返回网站的终极...

    laravel-wordpress-cms:文档laravel-wordpress-cms

    Laravel Wordpress CMS 版本Laravel 7.1 版本Laravel Wordpress CMS 1.0欢迎来到GitHub Pages Laravel Admin相同的CMS Wordpress :) 演示链接: : 安装与设定###选项1: php artisan install###选项2: 第一步: ...

    Subrion CMS 4.1.4.zip

    Subrion CMS是一个免费的开源内容管理系统,这允许您为任何目的构建网站,从博客到企业大型门户。Subrion CMS 4.1.4 更新日志:2017-05-16错误#125:为多语言网站生成不正确的站点地图;错误#400:重新加载页面后,...

    AspCms2.0标签大全

    本文将详细解读AspCms2.0的标签大全,涵盖其主要功能标签、页面导航标签、站点信息标签以及内容展示标签等,旨在为用户提供全面的AspCms2.0标签使用指南。 一、站点信息标签 站点信息标签主要用于获取网站的基本...

    AspCms2标签大全

    《AspCms2标签大全解析》 在深入解析AspCms2的标签系统之前,我们先简要了解一下AspCms2。AspCms2是一款基于ASP技术的网站内容管理系统,它以其强大的功能、灵活的配置以及丰富的模板支持而著称,尤其适合于中小型...

    《PHP &amp; MySQL: Novice to Ninja, 6th Edition》- 2017 英文原版

    ... ...Master database design principles Write robust, maintainable, best practice code ...CMS&#41; And much more! This book is suitable for beginner level web developers. No prior PHP experience is needed.

    微信小程序开发教程cms

    - **知识点16:模板使用**:通过标签复用相同或相似的视图结构。 ##### 第二节:为程序加入底部菜单导航 - **知识点17:基础内容导航**:设计并实现底部导航栏,支持页面间的跳转功能。 ##### 第三节:实现文章...

    aspcms 标签

    ### ASPCMS标签详解:构建高效网站管理系统的利器 在当今数字化时代,网站的建设和管理对于企业和个人来说至关重要。一个高效、灵活且易于操作的网站管理系统(CMS)是支撑这一需求的关键。ASPCMS,作为一款基于ASP...

    Pratt Content-Management-System &#40;CMS&#41;-开源

    Pratt Content-Management-System(CMS)是一款开源的软件解决方案,专为管理和发布数字内容而设计。这款系统的核心目标是简化网站内容的创建、编辑和维护过程,同时提供了一套强大的工具来支持这一过程。其开源特性...

    Orchard CMS: Up and Running

    该书《Orchard CMS: Up and Running》由John Zablocki编写,于2012年出版,是一本详细介绍如何使用Orchard CMS进行网站建设的指南。本书适用于希望使用Orchard CMS构建和管理网站的开发人员和技术人员。 #### 二、...

    ASPCMS V2版本 标签手册

    ASPCMS是一款基于ASP开发的内容管理系统,其V2版本提供了丰富的标签功能,使得开发者和网站管理员可以更加便捷地管理和展示网站内容。这份“ASPCMS V2版本 标签手册”是一个极其重要的参考资料,它详细介绍了ASPCMS...

    《PHP & MySQL: Novice to Ninja, 6th Edition》2017 英文原版 Kindle - mobi格式

    ... ...Master database design principles Write robust, maintainable, best practice code ...CMS&#41; And much more! This book is suitable for beginner level web developers. No prior PHP experience is needed.

    科讯CMS标签大全,kesion CMS标签大全

    根据给定的信息,本文将对科讯CMS中的各种标签进行详细的解释与说明。科讯CMS是一种功能强大的内容管理系统,能够帮助用户快速搭建和管理...对于科讯CMS的使用者来说,熟练掌握这些标签的应用是必不可少的技能之一。

Global site tag (gtag.js) - Google Analytics