JR 精品文章 - 邮件
AD: jr (at) javaresearch.org


首页 | 动态 | 文章 | FAQ  | 新闻 | 下载 | 代码 | 工作 | 调查 | 术语 | 站点 | 图书 | 论坛 | 帮助 | 全部  

TOP | 交流 | 软件 | 专栏 | 开源 | 译/著 | 源码 | API  | 推荐 | FTP  | 积分 | 统计 | 搜索 | Blog | 我们  
首页 » 研究文集 » 其它 搜索标题相关文章 搜索标题相关文章    评论此文章 发表评论     开始监控此文章 开始监控   加入收藏夹  加入收藏夹
邮件
challengehope 原创   更新:2007-09-24 12:50:57  版本: 1.0   

经常在一些网站注册以后,收到一封邮件。
下面分析怎样解析mailTemplate.
主要就是利用Matcher中的appendReplacement和appendTail方法。

package com.free.regular;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.InvalidPropertiesFormatException;
import java.util.Map;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Replacement {
   
        /**
         * source: source
         */
        private static StringBuilder source = null;
        /**
         * 
         * Replacement
         *
         * @since ver1.00
         */
        private Replacement(){
            
        }
        /**
        * getMessage
        * @param template
        * @param params
        * @return Syring
        */
        public String getMessage(final String template,
                final Map<String, Object> params) {
            Pattern pattern = Pattern
                    .compile("(\\$([a-zA-Z][a-zA-Z0-9_-]*))");
            Matcher matcher = pattern.matcher(template);
            StringBuffer result = new StringBuffer();
            while (matcher.find()) {
                matcher.appendReplacement(result, "$1"
                        + " : " + params.get(matcher.group(1)).toString().replace("\\",
                                "\\\\").replace("$", "\\$"));
             }
            matcher.appendTail(result);
            return result.toString().replace("\\$", "$").replace("\\\\", "\\");
       
        }

        /**
         * perparedData
         *
         * @since ver1.00
         */
        private void perparedData() {
            Properties prop = new Properties();
            // need to modify
            String fileName = "C:\\classes\\MailResource.properties";//下面有
            FileInputStream fis;
            try {
                fis = new FileInputStream(fileName);
                prop.loadFromXML(fis);
            } catch (InvalidPropertiesFormatException e) {
                throw new RuntimeException(e);
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
            source = new StringBuilder().append(prop.getProperty("issuePassword-content"));
        }
         
          
           
            
        /**
         * test method
         *
         * @param args args
         * @since ver1.00
         */
        public static void main(String [] args) {
            Replacement test = new Replacement();
            test.perparedData();
            Map<String, Object> params = new HashMap<String, Object>();
            params.put("$user_name", "challengehope");
            params.put("$temp_password", "1234");
            params.put("$temp_password_expiration_date", "2007/08/11");
            params.put("$system_name", "Test");
            params.put("$system_url", "Http://it_pub:8080/index.do");
            System.out.println(test.getMessage(source.toString(), params));

        }


    }

MailResource.properties
//

<?xml version="1.0" encoding="Windows-31J"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Mail Properties</comment>
<entry key="issuePassword-subject"><![CDATA[
 ($system_name)注册会员登录账号
]]></entry>


<entry key="issuePassword-content"><![CDATA[
 亲爱的会员:您好!

  现在您已经成功地注册了,账号如下:
  您的注册用户名:$user_name
  您的登录密码是:$temp_password
  您的密码的有效期限:$temp_password_expiration_date

  现在您可以使用这个账号在$system_name登录了!
  如果您是刚刚注册,请先了解本站:$system_url

 上面的邮件是自动的送信,请不要回复。

 $system_name
 $system_url
 ]]></entry>

</properties>



如有问题请及时联系QQ:573322952
                  mail:hufeng@neusoft.com

版权声明   给作者写信
本篇文章对您是否有帮助?  投票:         投票结果:     10       0
作者其它文章: 作者全部文章
评论人:challengehope 发表时间: Wed Sep 26 13:33:06 CST 2007
本文主要介绍邮件模板的解析。

这个文章共有 1 条评论
主题: 从大学教育与工作的差距谈源代码阅读的必要(江苏 无锡 缪小东) 上一篇文章
返回文章列表 返回〔其它〕
下一篇文章 主题: oracle定时锁定用户(绝对原创)


文字广告链接
        自主、快速定制基于JAVA的B/S业务系统          重量级企业在线自定义WEB报表平台
        Excel制表、零代码发布、打印、图表结合——快逸报表,免费、稳定、功能强大的java工具
        技术圈: 关于Java、dotNet、PHP、Ruby、奇客、Web2.0等更多资讯博客精选文章

关于 JR  |  版权声明  |  联系我们 

©2002-2006 JR 版权所有 沪ICP备05019622号