1 : <cms:user> user 标签提供了读当前用户的属性的方法
2 : <cms:property> 读取当前文件的属性
3 : <cms:link> 该标签为一个 VFS 资源生成有效的 OpenCms URL
4 : <cms:label> 读取 OpenCms 本地化属性文件中的字符串(仅当需扩展 OpenCms 工作区时使用)
5 : <cms:include> 用于运行中从 OpenCms VFS 动态包含文件,包含的文件被当成一个请求的附加参数。
6 : <cms:template> template 标签允许您把一个 JSP 页面分割成多个元素,以便使用 <cms:include> 引入。
7 : <cms:contentcheck> 检查 XML 内容的项目是否存在
8 : <cms:contentloop> 该标签用来循环取出 XML 内容列的全部元素
9 : <cms:contentshow> 该标签用于显示 XML 内容的列的值
10 : <cms:contentload> 载入一个 XML 内容资源的 collection ,根据给定的 collector 属性,确定是单个资源还是资源列表
11 : <cms:info> info 标签显示系统的运行信息以及底层支撑的
Java/Servlet/OS
环境信息。这个标签是通过标准的
System.getProperty(value)
来获得 Java 虚拟机信息的。如果给出的 property 的值没有对应的键值时,会返回错误信息。
二、一些问题
1. 路径问题: 代码:
<cms:contentload collector="allInFolderDateReleasedDesc" param="TEEMA_Ad/Home/Banner_Text/|teemaAd" editable="true">
如果在OPENCMS后台打开JSP页面时,该param下内容无法显示,须另开窗口,对应URL才可显示。
2.如何显示目录下的内容。
<% if (getResourceCount(__cms, " TEEMA_Ad/Home/Wide_Block_1/|teemaAd " , false ) > 0 ) { %>
< cms:contentload collector = " allInFolderDateReleasedDesc " param = " TEEMA_Ad/Home/Wide_Block_1/|teemaAd "
editable = " true " >
< img src = " /eeonline/cms<cms:contentshow element= " Image / Image " /> " width = " 440 " height = " 75 " >
<% } %>
</ cms:contentload >
<%
}
%>
3 .创建文件类别 在opencms-modules.xml中:
< explorertype name = " teemaNews " key = " fileicon.teemaNews " icon = " article.gif " reference = " xmlcontent " >
< newresource page = " structurecontent " uri = " newresource_xmlcontent.jsp?newresourcetype=teemaNews " order = " 4 "
autosetnavigation = " false " autosettitle = " false " />
< accesscontrol >
< accessentry principal = " GROUP.Administrators " permissions = " +r+v+w+c " />
< accessentry principal = " GROUP.Projectmanagers " permissions = " +r+v+w+c " />
< accessentry principal = " GROUP.Users " permissions = " +r+v+w+c " />
</ accesscontrol >
</ explorertype >
===============================================
< type class = " org.opencms.file.types.CmsResourceTypeXmlContent " name = " teemaNews " id = " 1003 " >
< properties >
< property >
< name > content - conversion </ name >
< value type = " shared " ><! [CDATA[cleanup;xhtml]] ></ value >
</ property >
< property >
< name > template - elements </ name >
< value type = " shared " ><! [CDATA[ / system / modules / com.teema.eeonline / pages / detail - news.html]] ></ value >
</ property >
</ properties >
< param name = " schema " >/ system / modules / com.teema.eeonline / schemas / teemaNews.xsd </ param >
</ type >
在后台schemas中,新建文件,类别为xsd,然后eidt source。代码请参考相关文件。
4 .模板文件的使用 选择文件,右键属性->高级
然后在template中输入对应的模板路径。
本工程的模板目录路径为上图所示,每个模板的功能,都有相应的说明。
5 . 文件包含与变量问题
a) 不能在包含的js文件里,引用父JSP文件的变量。
b) 最好不要用 <jsp include 来包含文件而采用<%@ include file,否则如果模板文件没有发布,无法识别其改动。
6. 关于文件发布
a) 同步后,要进行发布,更改后的文件才能生效。
b) 个别文件的改动发布,如果改动到模块文件所包含的文件,发布时,不能只发布包含文件 ,而模板文件也要改动再发布。
7 .关于 ContentLoad Tag 中的变量
1) go to WEB-INF/opencms.tld and add <rtexprvalue>true</rtexprvalue>
2) Alternatively you could put the value into the pageContext (<c:set var="file">/sites/default/xyz.html</c:set>)
and then use a macro "<cms:contentload...param="${pageContext.file}">..." .
8 . Accessing files with a new CmsObject instance
import org.opencms.file.CmsObject;
import org.opencms.file.CmsProject;
import org.opencms.main.CmsException;
import org.opencms.main.OpenCms;
// ...
cmsObject = OpenCms.initCmsObject( "Guest" );
cmsObject.loginUser( "Admin", "admin" );
CmsProject cmsProject = cmsObject.readProject( "Offline" );
cmsObject.getRequestContext().setCurrentProject( cmsProject );
cmsObject.getRequestContext().setSiteRoot( "/" );
9. 后台页面form文本域的提交,所在的类CmsToolManager.initParams(CmsToolDialog wp)