一、前言
通过OpenCms配置列表页和内容详情页模板,效果可以在小木人体验区进行登录操作预览,点击站点,切换为“/”的sites根站点节点下test目录,如下图所示,点击“test”(ArtTest.html单内容引用模板 - 点击预览,ArtListTest.jsp为发布list目录下内容列表页模板)
二、配置步骤
一、 详情页配置
1. 在/sites站点下创建test节点,点击test,再点“新建”,选择“结构化内容”,如下图所示
2. 选择“Article”,如下图,填下名称如“ArtTest.html”
3. 新建详情页对应的模板页,切换到“系统管理视图”,新建“org.opencms.test”模块
4. 如下图,在“org.opencms.test”的templates目录下,新建detailTmp.jsp文件
5. 右击“detailTmp.jsp”编辑源代码,内容如下所示
<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms"%>@b@<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>@b@@b@<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">@b@<html xmlns:c="http://java.sun.com/jstl/core" xmlns:xalan="http://xml.apache.org/xslt">@b@<head>@b@ <meta content="text/html; charset=utf-8" http-equiv="content-type"/>@b@ <title>写个模板试下</title>@b@</head>@b@<body>@b@<cms:contentload collector="singleFile" param="%(opencms.uri)">@b@ 标题:<cms:contentshow element="Title"/><br/>@b@ 内容:<cms:contentshow element="Paragraph/Text"/><br/>@b@</cms:contentload>@b@</body>@b@</html>
6. 如上中contentshow标签的element原始对应Article的控制代码文件xsd小的命名约束规范(右击“ArtTest.html”,选择“高级”-“编辑控制代码”),如下图
7. 右击“ArtTest.html”-> 选择“属性”-> 点击右下角“高级”按钮 ,在“高级”配置界面的template-elements绑定之前“detailTmp.jsp”模板,如下图所示
8. 点击发布按钮,如直接点击内容(可直接预览效果)
二、列表页配置
1.在test目录下,新增个list目录,并新建两个“artice”结构类型内容
2. 新建个“ArtListTest.jsp”文件,代码如下所示
<%@ 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@%>@b@<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">@b@<html xmlns:c="http://java.sun.com/jstl/core" xmlns:xalan="http://xml.apache.org/xslt">@b@<head>@b@ <meta content="text/html; charset=utf-8" http-equiv="content-type"/>@b@ <title>写个模板试下</title>@b@</head> @b@<body> @b@<cms:contentload collector="allInFolderDateReleasedDesc" param="/sites/test/list/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@内容:<cms:contentshow element="Paragraph/Text"/><br/> @b@</cms:contentload> @b@<cms:user property="name"/> @b@</body> @b@</html>
3. 保存发布,直接点击“ArtListTest.jsp”预览效果如下所示
三、分页的列表
1.在test目录下新建一个“ArticleListPage.jsp”模板内容,复制下面内容贴进去
<%@ page session="false" import="java.text.SimpleDateFormat,java.util.Date"%>@b@<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>@b@<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>@b@<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms"%>@b@<html>@b@<head>@b@<title>测试待分页新闻列表页</title>@b@<cms:editable/>@b@</head>@b@<body>@b@ <!-- param="/test/news_%(number).html|testnews" 中的/test/是指定要显示信息所在的路径,根据实际情况修改,testnews是指定要显示信息的类型 -->@b@ <cms:contentload collector="allInFolderPriorityDateDesc" param="/sites/test/list/art_%(number).html|v8article" preload="true">@b@ <!-- pageSize 即是每页要显示信息的数量 -->@b@ <cms:contentload pageSize="3" pageIndex="%(param.pageIndex)" pageNavLength="10" editable="true">@b@ <cms:contentinfo var="contentInfo" scope="request" />@b@ <a href="<cms:link><cms:contentshow element="%(opencms.filename)" /></cms:link>" target="_blank"><cms:contentshow element="Title" /></a>@b@</cms:contentload>@b@<!-- 以下是分页开始 -->@b@<c:if test="${contentInfo.pageIndex>1}">@b@ <a href="<cms:link>${cms:getCmsObject(pageContext).requestContext.uri}</cms:link><c:out value="?pageIndex=${contentInfo.pageIndex-1}"/>">上一页</a>@b@</c:if>@b@<c:forEach var="i" begin="${contentInfo.pageNavStartIndex}" end="${contentInfo.pageNavEndIndex}">@b@ <c:choose>@b@ <c:when test="${contentInfo.pageIndex==i}">@b@ <font color="red"><c:out value="${i}"/></font>@b@ </c:when>@b@ <c:otherwise>@b@ <a href="<cms:link>${cms:getCmsObject(pageContext).requestContext.uri}</cms:link><c:out value="?pageIndex=${i}"/>"><c:out value="${i}"/></a>@b@ </c:otherwise> @b@ </c:choose>@b@</c:forEach>@b@<c:if test="${contentInfo.pageIndex < contentInfo.pageCount}">@b@ <a href="<cms:link>${cms:getCmsObject(pageContext).requestContext.uri}</cms:link><c:out value="?pageIndex=${contentInfo.pageIndex+1}"/>">下一页</a>@b@</c:if>@b@</cms:contentload>@b@@b@</body>@b@</html>
2.点击“ArticleListPage.jsp”文件,预览效果,如下图所示