一般动作
登录
Wiki: BROPEN ▼: Document Index
»
Space: FAQ ▼: Document Index
»
Page: 消息模板开发说明
搜索
zh
页面动作
导出 ▼: 以PDF格式导出 以RTF格式导出 以HTML格式导出
更多动作 ▼: 打印预览 察看源码
欢迎进入Wiki » FAQ » 消息模板开发说明?

# 消息模板开发说明?

在2015-06-30 15:15上被李小翔修改
评论 (0) · 附件 (1) · 记录 · 信息

供稿人：刘少林

项目中会有这样的需求，按照固定的格式输出一些信息，比如发送一条短信 “尊敬的用户你好，xxx给你发来一封邮件请登录查看.....”，这句提示信息中，会变化的只有“XXX”（发件人），其他的文字都是不变的。

通常，我们会写一个方法，把“XXX”当成一个参数传过来，并返回拼接好的文字，挺方便也容易理解，但是有个问题，如果文字有变动的话，每次都要手动去改相关的代码。

此时，可以使用“消息模板”功能进行开发，如果模板发生变化，可以由管理员直接在后台维护，并且支持国际化。

## 创建消息模板

有两种方式创建消息模板，一种是使用管理员登录到后台，在“数据字典/其他/消息模板”中新建消息模板，如下图所示，关键信息包括：

- 模板代码：用于在程序中调用的模板代码，必须唯一。
  可以添加 i18n 后缀以支持国际化，比如消息 FOOBAR，可以分别定义 FOOBAR_zh_CN、FOOBAR_en_US 中、英文模板
- 是否是HTML：通过API拼装消息时，原样返回的标记
- 标题：消息标题（如果有的话，如邮件）
- 内容：消息正文
  其中，标题和内容模板支持命名参数或顺序参数，如图例中的 {title} 使用的就是命名参数，还可以使用类似 “待办提醒：{0}” 的传参模式（和 i18n 下的 properties 文件类似），通过不同的 API 调用时，会自动将这些参数替换成实际的值。

另外一种维护方式是在工程启动时（如 BootStrap）调用API自动创建，如下例所示：

import bropen.framework.plugins.message.MessageTemplateService
class BootStrap {
MessageTemplateService messageTemplateServices
....
messageTemplateService.createTemplateIfNotExists("MESSAGE_TEST_CODE", "消息模块test", null, "尊敬的用户你好，{name}给你发来一封邮件请登录查看.....", false)
....
}

messageTemplateService.createTemplateIfNotExists 详细参数说明请参考 API 手册。

## 根据模板生成消息

通过 MessageTemplateService.getMessage 来生成消息，返回值是一个 Map，如 [title: "标题", body: “内容（正文）”, isHTML: ture/false]：

assert messageTemplateService.getMessage("MESSAGE_TEST_CODE", [name: "张三"]) == "尊敬的用户你好，张三给你发来一封邮件请登录查看....."

由于上面的示例定义的是命名参数，因此这里调用的是以 Map 为参数的 getMessage 版本，此外，还有以列表为参数的版本，详细参考 API 手册。

标签： BroFramework
在2015-06-30 15:13上被李小翔创建

- 评论 （0）
- 附件 （1）
- 记录
- 信息

# 快速链接

- 首页
- 新闻动态
- FAQ

Copyright © 2013 北京博瑞开源软件有限公司
京ICP备12048974号