TRS+WCM二次开发文档

TRS WCM二次开发文档 第 1 页

目 录

1

文档概述 ................................................................................................................................... 4 1.1 1.2 1.3 1.4 1.5 1.6 2

文档的建立 ....................................................................................................................... 4 文档的适用范围 ............................................................................................................... 4 文档的组织 ....................................................................................................................... 4 文档的目标 ....................................................................................................................... 4 文档术语 ........................................................................................................................... 4 我们的建议 ....................................................................................................................... 5

阅读前的准备 ........................................................................................................................... 5 2.1 2.2 2.3 2.4

安装TRS WCM V65应用 ............................................................................................... 5 安装ECLIPSE .................................................................................................................... 5 导入TRS WCM DEVELOPER工程 ................................................................................... 5 EXAMPLE中示例方法运行方法 ...................................................................................... 5

3 WCM持久化实现 ................................................................................................................... 5 3.1 概述 ................................................................................................................................... 5 3.2 集合和元素初始 ............................................................................................................... 6 3.3 集合和元素进阶 ............................................................................................................... 7 3.4 集合和元素的产生 ........................................................................................................... 8 3.4.1 配置Ant运行环境 ................................................................................................... 8 3.4.2 利用WCMStudio产生代码 ..................................................................................... 8 3.5 查询SQL描述对象——WCMFILTER .......................................................................... 10 3.6 查询读取指定条件的数据 ............................................................................................. 10 3.7 删除指定的数据 ............................................................................................................. 11 3.8 新增数据 ......................................................................................................................... 12 3.9 修改数据 ......................................................................................................................... 12 3.10 集合常用操作 ............................................................................................................. 13 3.10.1 判断指定ID是否在集合中 ................................................................................... 13 3.10.2 获取指定位置的元素 ............................................................................................. 13 3.10.3 获取指定ID的元素 ............................................................................................... 13 3.10.4 从集合中移除指定位置的元素,不从数据库删除 ............................................. 13 3.10.5 从集合中移除指定ID的元素,不从数据库删除 ............................................... 14 3.11 元素常用操作 ................................................................................................................. 14 3.11.1 根据ID获取指定元素对象 ................................................................................... 14 3.11.2 判断指定对象是否可以被当前用户修改 ............................................................. 14 3.12 数据类型 ..................................................................................................................... 14 3.13 如何操作没有对应持久化对象的表 ......................................................................... 15 3.14 常犯错误 ..................................................................................................................... 15 3.14.1 构造WCMFilter包含关键字 ................................................................................ 15 3.14.2 构造WCMFilter时SQL各部分顺序反了 ........................................................... 15 3.14.3 构造WCMFilter时漏了要提取的字段................................................................. 16 3.14.4 构造WCMFilter时指定的字段在元素对应的表中不存在 ................................. 16

TRS WCM二次开发文档 第 2 页

3.14.5 根据ID获取元素采用集合方式 ........................................................................... 16 3.14.6 查询数据采用了低效方式 ..................................................................................... 17 3.14.7 权限判断返回不是预期的值 ................................................................................. 17 3.14.8 集合移除操作需要从后往前 ................................................................................. 18 3.15 常见问题 ..................................................................................................................... 18 3.15.1 每次打开集合是否需要传递用户 ......................................................................... 18 3.15.2 如何分页读取集合数据 ......................................................................................... 18 3.15.3 多表联合查询怎么办 ............................................................................................. 19 3.15.4 不同的查询条件和排序条件如何合并 ................................................................. 19 3.15.5 如何规避SQL注入 ................................................................................................ 20 3.15.6 是否支持从其它表中提取数据 ............................................................................. 20 3.15.7 如果查询语句要有Group By如何办 ................................................................... 20 3.15.8 如果WCMDocument中新增了一个字段,如果使用Document对象读取 ....... 20 3.15.9 构造WCMFilter的时候,只是指定三个参数会出现什么情况 ......................... 21 4

WCM分层介绍 ..................................................................................................................... 21 4.1 4.2 4.3 5

持久层 ............................................................................................................................. 21 业务层 ............................................................................................................................. 21 服务层 ............................................................................................................................. 22

如何使用服务层 ..................................................................................................................... 22 5.1 5.2 5.3 5.4 5.5 5.6 5.7

概述 ................................................................................................................................. 22 使用步骤 ......................................................................................................................... 24 实战1——获取固定栏目的文档 .................................................................................. 24 实战2——根据JSP中传入的栏目ID获取文档 ........................................................ 27 实战3——处理参数和服务要求的参数名不一致 ...................................................... 27 实战4——仅显示状态为已发的文档 .......................................................................... 29 实战5——使用多个服务 .............................................................................................. 30

6 如何撰写服务层 ..................................................................................................................... 31 6.1 撰写步骤 ......................................................................................................................... 31 6.1.1 实现合适的接口IServiceProvider或者其子类 .................................................... 31 6.1.2 撰写配置文件 ......................................................................................................... 31 6.1.3 撰写服务层测试用例 ............................................................................................. 32 6.2 常用API ......................................................................................................................... 32 6.2.1 保存(Save)方法中将传入的参数都设置到对象中.......................................... 32 6.2.2 查询(query)服务中将页面传入的参数组合成WCMFilter ............................. 32

7 8 9

在WCM中注入项目特性 .................................................................................................... 34 给WCM换一个表现 ............................................................................................................ 34 置标扩展 ................................................................................................................................. 34 9.1 9.2 9.3

阅读建议 ......................................................................................................................... 34 理解TRS WCM置标 ..................................................................................................... 34 置标解析器(PARSER) .................................................................................................. 1

TRS WCM二次开发文档 第 3 页

9.4 快速入门——HELLO,WORLD! .................................................................................... 1 9.5 如何获取置标上设置的属性——HELLO,北京/上海/广州! ...................................... 4 9.6 如何获取置标所处语境页面对象的信息——HELLO,站点XXX/栏目XXX/文档XXX! .......................................................................................................................................... 5 9.7 如何获取置标所处语境当前相关对象的信息——显示文档作者的联系电话 ........... 6 9.8 WCM置标属性规范 ........................................................................................................ 7 9.8.1 ID .............................................................................................................................. 8 9.8.2 Field .......................................................................................................................... 8 9.8.3 NUM .......................................................................................................................... 8 9.8.4 AutoFormat、AutoFormatType ................................................................................ 8 9.9 常用的方法 ....................................................................................................................... 8 9.9.1 根据置标ID上设置的属性获取相关的栏目 ......................................................... 8 9.9.2 根据置标ID上设置的属性获取相关的栏目 ......................................................... 9 9.9.3 获取当前页面所在路径 ........................................................................................... 9 9.9.4 获取指定对象的HTTP路径 ................................................................................... 9 9.9.5 获取文档的HTTPURL(第一页) ......................................................................... 9 9.9.6 计算一个地址相对于当前页面的相对地址 ........................................................... 9 9.9.7 按照置标属性设定的要求截断字符串 ................................................................. 10 9.9.8 按照置标属性设定的要求转义字符串 ................................................................. 10 9.9.9 将文件分发到分发点上 ......................................................................................... 10 9.9.10 将置标可以很指定的栏目建立触发发布关系 ..................................................... 12 9.10 高级——调试置标 ..................................................................................................... 12 10

附录..................................................................................................................................... 13

10.1 附录1:WCM常用的持久化对象及对应的表 ....................................................... 13 10.2 附录2:数据类型 ...................................................................................................... 13 10.3 附录3:服务调用对象JSPREQUESTPROCESSOR ..................................................... 14 10.3.1 常用FAQ ................................................................................................................ 15 10.4 附录4:PUBLISHTAGCONTEXT常用介绍 ................................................................. 17 10.4.1 获取置标属性(getAttribute) ................................................................................... 17 10.4.2 获取置标所处语境——页面对象(getPageElement) ....................................... 18 10.4.3 获取置标所处语境——当前对象(getUpperHost) .......................................... 18

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4