首页

如何通过OpenCms标签模板定义实现栏目内容全动态关联?

标签:opencms,OpenCms,栏目动态化,标签,模板,栏目内容动态化,自定义栏目,自定义内容,导航,实践     发布时间:2016-01-08   

一、前言

对于资讯新闻类的内容栏目等内容静态发布站点,如何通过opencms定义模板实现栏目动态化定义及栏目内容的关联,这样方便栏目自定义扩展,效果如下图所示(可以到体验区登录),更多相关标签内容请点击更多opencms入门文档系统架构设计图下查找更多标签说明。

如何通过OpenCms标签模板定义实现栏目内容全动态关联?

二、代码示例

1. 见上面截图定义了一个“ActiveClassOfConsTest.jsp”页面模板,分别展示栏目“list”、“list2”内容

2. 右击“list2”,在菜单中选择“设置导航”,如下图

如何通过OpenCms标签模板定义实现栏目内容全动态关联?

3. 分别设置栏目“list”、“list2”为导航,并设置导航文字为“动态栏目导航一”、“栏动态栏目导航二”,如下图所示

如何通过OpenCms标签模板定义实现栏目内容全动态关联?

4. 通过栏目导航遍历获取打印出相应内容,从而实现栏目的动态化及栏目内容的动态关联,示例代码如下

<%@ page import="java.util.*" %>@b@<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms"%>@b@<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> @b@<%@b@    String path=request.getParameter("catapath"); @b@    org.opencms.jsp.CmsJspActionElement cms = new org.opencms.jsp.CmsJspActionElement(pageContext, request, response);@b@@b@    // 为当前文件文件夹下的所有子文件夹和页面创建导航@b@    List list = cms.getNavigation().getNavigationForFolder();@b@    Iterator i = list.iterator();@b@    @b@    out.println("<h3>一个简单的导航</h3>");@b@@b@    while (i.hasNext()) {@b@        org.opencms.jsp.CmsJspNavElement ne = (org.opencms.jsp.CmsJspNavElement)i.next(); @b@        out.println("<li>"+ne.getNavText() + ":"+ne.getResourceName()+"</li>"); @b@        request.setAttribute("spath",ne.getResourceName()); @b@%>@b@ @b@     <cms:contentload collector="allInFolderDateReleasedDesc" param="${spath}art_%(number).html|v8article" editable="true"> @b@     @b@       <a href="<cms:link><cms:contentshow element="%(opencms.filename)" /></cms:link>" target="_blank">@b@            <cms:contentshow element="Title"/>@b@       </a>、@b@     @b@    </cms:contentload> @b@    @b@    @b@<% } out.println("</ul>");%>