怎样利用模板拼接字符串
来源:互联网 发布:windows查看内存型号 编辑:程序博客网 时间:2024/05/22 02:01
近期的项目里在做消息的模块,负责系统内容的各种消息。有些消息的格式是固定的,每次改变的只是用户名等固定的几个字段。为了方便的维护这些消息,我们系统采用消息模板来实现。
例如:“尊敬的 #username# 您好,您购买的《#bookname#》交易成功!”
我们只要维护这个模板即可。那么发消息时,怎么将消息替换成相应的字段呢?对于不同的模板,有多个不同的参数该怎么办?
和消息相关的表有两张,一张是消息类型,一张是消息记录。
首先,我们需要从消息类型表查找到消息的模板,比如购买消息的模板:“尊敬的 #username# 您好,您购买的《#bookname#》交易成功!”
接着,我们可以根据传入的参数对变量进行替换,这里用map存放参数.
controller代码:
//参数1.消息模板名称String messageTypeName="购买";//参数2.要传入的字段Map<String,String> map = new HashMap<String,String>();map.put("username", "张三");map.put("coursename", "JSP应用开发与实践");//参数3.接收消息的idString receiveMessageId="UWUi4B6Z93h1nr4NiM19k4";//参数4.发送消息的idString sendMessageId="UWUi4B6Z93h1nr4NiM19k4";
<span style="white-space:pre"></span>//方法调用<span style="white-space:pre"></span>messageRecordBean.saveMessageRecord(messageTypeName, map, receiveMessageId, sendMessageId);
service实现:
//获取模板内容【查询方法略】String messageTemplate=messageType.getMessageTemplate();//获取map集合中的所有键,存入到Set集合中, Set<Map.Entry<String,String>> entry = map.entrySet(); //通过迭代器取出map中的键值关系 Iterator<Map.Entry<String,String>> it = entry.iterator(); while (it.hasNext()) { //将键值关系取出存入Map.Entry这个映射关系集合接口中 Map.Entry<String,String> me = it.next(); //获取键值,进行替换 messageTemplate=messageTemplate.replaceAll("#"+me.getKey()+"#", me.getValue()); } //3.添加到消息实体MessageRecord messageRecord=new MessageRecord();messageRecord.setMessageRecordContent(messageTemplate);messageRecord.setMessageTypeId(messageType.getId());messageRecord.setReceiveMessageId(receiveMessageId);messageRecord.setSendMessageId(sendMessageId);messageRecord.setIsRead(0);//成功返回true,否则返回falsetry {messageRecordEao.saveGeneric(messageRecord);return true;} catch (Exception e) {e.printStackTrace();}return false;
主要的实现思路:使用map存放变量值,使用迭代器将模板中的变量替换为对应的map值。然后将获取的值保存到消息记录里。
业务虽然不是很难,但是通过自己的思考一步一步把它实现,心里特别的开心!
0 0
- 怎样利用模板拼接字符串
- 利用StringBuilder拼接字符串
- arttemplate模板--字符串拼接中使用模板语法
- 接口测试HTML报告模板(第一版 纯字符串拼接)
- c++11可变参模板实现字符串拼接
- 利用JS提高组合拼接字符串效率的方法
- 利用拼接字符串可能导致SQL注入问题
- 利用JS提高组合拼接字符串效率的方法
- 利用Java程序将字符串进行排序与拼接
- 拼接字符串:
- 字符串拼接
- 字符串拼接
- 字符串拼接
- 字符串拼接
- 拼接字符串
- 拼接字符串
- 拼接字符串
- 拼接字符串
- 状态模式的具体实现 情景二
- sticklistview
- UI-事件处理
- GDB工具使用教程_函数调用栈(call stack)探密
- Android:带边框的,等比缩放的,铺满控件的ImageView
- 怎样利用模板拼接字符串
- i.MX 6Q开发环境配置
- 画虚线需要设置android:layerType="software",否则无效
- Swift之 ? 和 !
- Codevs P1652 淘汰赛制
- 序列化生成XML文件以及Pull解析
- Spark RDD transformation操作
- Http头部信息
- 在Ubuntu14.4(64位)中配置I.MX6的QT编译环境