[
王毅原创,转载注明]
标签说明:
<cms:contentload>
载入一个
XML
内容资源的
collection
,根据给定的
collector
属性,确定是单个资源还是资源列表。
也就是说,这个标签可以载入一个xml结构化类型的资源的列表,也可以载入单个的一个xml结构化类型的资源,依靠的仅仅是collector这个属性的值的不同。
标签属性:
这个属性用来确定读取结构化内容。collectors是由OpenCms中的配置文件opencms-vfs.xml定义的。原始内容如下:
<collectors>
<collector class="org.opencms.file.collectors.CmsPriorityResourceCollector" order="100" />
<collector class="org.opencms.file.collectors.CmsDefaultResourceCollector" order="110" />
<collector class="org.opencms.file.collectors.CmsDateResourceCollector" order="120" />
<collector class="org.opencms.file.collectors.CmsTimeFrameCategoryCollector" order="130" />
<collector class="org.opencms.file.collectors.CmsCategoryResourceCollector" order="140" />
</collectors>
这个标签的可选值有以下几种:
- singleFile
- allInFolder
- allInFolderDateReleasedDesc
- allInFolderNavPos
- allInSubTree
- allInSubTreeDateReleasedDesc
- allInSubTreeNavPos
- allInFolderPriorityDateDesc
- allInFolderPriorityTitleDesc
- allInSubTreePriorityDateDesc
- allInSubTreePriorityTitleDesc
至于这些值的意思,我觉得看字面意思也能明白,在这里就不做解释了。
注意的是,这个值可以直接在属性里面指定,也可以在属性里面指定。大家如果注意的话,就会发现在TemplateOne里面,资源有一个属性为“collector”,你可以通过下面这个值:
${property.collector}
来得到属性中的值,这样的话,显得更为灵活,当你需要排序的方式发生改变时候,不需要你修改页面的硬代码,直接修改一个资源的属性就可以了。
这个属性用来给“collector”提供额外的其他信息,最常见的用法如下:
- <cms:contentload collector ="singleFile" param="${opencms.uri}"> 用来在加载当个资源文件的时候要通过param告诉“collector”遍历的是这个uri做指向的资源。
- <cms:contentload collector ="allInFolder" param="/xmlcontent/article_${number}.html|article|4"> 用来指定加载的是那些资源,是那种结构化类型,加载多少项。
这里也需要注意以下,这个属性的值,可以直接指定,也可以向上面的
collector属性一样有属性得到,还可以通过普通的页面参数得到,还有一种比较特殊的就是在加载单个文件的时候,可以使用
${opencms.uri}和
${opencms.filename}
这个属性指定了当前xml内容资源是否支持直接编辑的特性。
可选的值也当然只有“是”和“否”了,也就是“true”和“false”。
这个属性是可选的,当你什么都不写的时候,有一个“false”作为默认值。
这个属性定义了是否预先加载xml资源的内容。
这个属性可选的值有“true”。
【标签体】
可以是任何的HTML, JSP or JSTL代码。这个代码在返回的集合不止一个结构化内容项的时候被循环执行。