设为首页 收藏本站
查看: 684|回复: 0

[经验分享] apache的开源项目

[复制链接]

尚未签到

发表于 2017-1-1 11:58:01 | 显示全部楼层 |阅读模式
  首先,如果你对Velocity不是很了解,还是建议你去apache的官方网站上去走走....
  这是velocity的官网:http://velocity.apache.org/
  当然如果你对英文文档不是很感冒,这里也有好的资料:
  Velocity 文档(1)
Velocity 文档(2)
Velocity 文档(3)
  下面我就正式说说我做的项目啦...
  项目结构:
DSC0000.png

  运行"helloWorld.vm"模板效果:
DSC0001.png

  运行"userInfo.vm"模板效果:
DSC0002.png

  运行"emailTemplate.vm"模板效果:
DSC0003.png

  ==============================================================
  代码部分:
  ==============================================================
  /Apache-Velocity-java/src/com/b510/velocity/test/VelocityTest.java

  1 /**
  2 *
  3  */
  4 package com.b510.velocity.test;
  5
  6 import java.io.StringWriter;
  7 import java.text.SimpleDateFormat;
  8 import java.util.Date;
  9
10 import org.apache.velocity.Template;
11 import org.apache.velocity.VelocityContext;
12 import org.apache.velocity.app.VelocityEngine;
13
14 import com.b510.velocity.bean.Mail;
15 import com.b510.velocity.bean.User;
16
17 /**
18 * 测试类
19 *
20 * @author hongten<br>
21 * @date 2013-3-9
22  */
23 public class VelocityTest {
24
25     public static final String HELLO_WORLD_VM_PATH = "vms/helloWorld.vm";
26     public static final String USER_INFO_VM_PATH = "vms/userInfo.vm";
27     public static final String EMAIL_TEMPLATE_VM_PATH = "vms/emailTemplate.vm";
28
29     public static void main(String[] args) throws Exception {
30         sayHelloFromVM(HELLO_WORLD_VM_PATH);
31         testUser(USER_INFO_VM_PATH);
32         testEmail(EMAIL_TEMPLATE_VM_PATH);
33     }
34
35     /**
36      * 简单的hello world
37      *
38      * @param fileVM
39      * @throws Exception
40      */
41     public static void sayHelloFromVM(String fileVM) throws Exception {
42         VelocityEngine ve = new VelocityEngine();
43         ve.init();
44         Template t = ve.getTemplate(fileVM);
45         VelocityContext context = new VelocityContext();
46         context.put("hello", "Hello world!!");
47         StringWriter writer = new StringWriter();
48         t.merge(context, writer);
49         System.out.println(writer.toString());
50     }
51
52     /**
53      * test User
54      *
55      * @param fileVM
56      * @throws Exception
57      */
58     public static void testUser(String fileVM) throws Exception {
59         VelocityEngine ve = new VelocityEngine();
60         ve.init();
61
62         Template template = ve.getTemplate(fileVM);
63         VelocityContext velocityContext = new VelocityContext();
64         User user = new User();
65         user.setEmail("hongtenzone@foxmail.com");
66         user.setName("hongten");
67         user.setBirthday("1990-11-18");
68         velocityContext.put("user", user);
69         StringWriter stringWriter = new StringWriter();
70         template.merge(velocityContext, stringWriter);
71
72         System.out.println(stringWriter.toString());
73     }
74
75     /**
76      * test email
77      *
78      * @param fileVM
79      * @throws Exception
80      */
81     public static void testEmail(String fileVM) throws Exception {
82         VelocityEngine velocityEngine = new VelocityEngine();
83         velocityEngine.init();
84
85         Template template = velocityEngine.getTemplate(fileVM);
86         VelocityContext velocityContext = new VelocityContext();
87         Mail mail = new Mail();
88         mail.setContent("2013年腾讯开发者新扶持政策解读及创业机会所在");
89         mail.setReceiverMail("hongtenzone@foxmail.com");
90         mail.setReceiverName("Hongten");
91         mail.setSenderMail("opensns_noreply@tencent.com");
92         mail.setSenderName("腾讯开放平台");
93         mail.setSenderWebSite("open.qq.com");
94         SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
95                 "yyyy-MM-dd HH:mm:ss");
96         mail.setDate(simpleDateFormat.format(new Date()));
97         velocityContext.put("mail", mail);
98         StringWriter stringWriter = new StringWriter();
99         template.merge(velocityContext, stringWriter);
100
101         System.out.println(stringWriter.toString());
102     }
103 }

  /Apache-Velocity-java/src/com/b510/velocity/bean/User.java

1 /**
2 *
3  */
4 package com.b510.velocity.bean;
5
6
7 /**
8 * 用户实体类
9 *
10 * @author hongten<br>
11 * @date 2013-3-9
12  */
13 public class User {
14
15     /**
16      * 用户编号
17      */
18     private Integer id;
19     /**
20      * 用户名称
21      */
22     private String name;
23     /**
24      * 密码
25      */
26     private String password;
27     /**
28      * 生日
29      */
30     private String birthday;
31     /**
32      * 邮箱
33      */
34     private String email;
35
36     public Integer getId() {
37         return id;
38     }
39
40     public void setId(Integer id) {
41         this.id = id;
42     }
43
44     public String getName() {
45         return name;
46     }
47
48     public void setName(String name) {
49         this.name = name;
50     }
51
52     public String getPassword() {
53         return password;
54     }
55
56     public void setPassword(String password) {
57         this.password = password;
58     }
59
60     public String getBirthday() {
61         return birthday;
62     }
63
64     public void setBirthday(String birthday) {
65         this.birthday = birthday;
66     }
67
68     public String getEmail() {
69         return email;
70     }
71
72     public void setEmail(String email) {
73         this.email = email;
74     }
75
76 }

  /Apache-Velocity-java/src/com/b510/velocity/bean/Mail.java

  1 /**
  2 *
  3  */
  4 package com.b510.velocity.bean;
  5
  6 /**
  7 * 邮件
  8 *
  9 * @author hongten<br>
10 * @date 2013-3-9
11  */
12 public class Mail {
13
14     private Integer id;
15     /**
16      * 发件人
17      */
18     private String senderName;
19     /**
20      * 发件人邮箱
21      */
22     private String senderMail;
23     /**
24      * 发件人网址
25      */
26     private String senderWebSite;
27     /**
28      * 收件人
29      */
30     private String receiverName;
31     /**
32      * 收件人邮箱
33      */
34     private String receiverMail;
35     /**
36      * 内容
37      */
38     private String content;
39     /**
40      * 日期
41      */
42     private String date;
43
44     public Integer getId() {
45         return id;
46     }
47
48     public void setId(Integer id) {
49         this.id = id;
50     }
51
52     public String getSenderName() {
53         return senderName;
54     }
55
56     public void setSenderName(String senderName) {
57         this.senderName = senderName;
58     }
59
60     public String getSenderMail() {
61         return senderMail;
62     }
63
64     public void setSenderMail(String senderMail) {
65         this.senderMail = senderMail;
66     }
67
68     public String getReceiverName() {
69         return receiverName;
70     }
71
72     public void setReceiverName(String receiverName) {
73         this.receiverName = receiverName;
74     }
75
76     public String getReceiverMail() {
77         return receiverMail;
78     }
79
80     public void setReceiverMail(String receiverMail) {
81         this.receiverMail = receiverMail;
82     }
83
84     public String getContent() {
85         return content;
86     }
87
88     public void setContent(String content) {
89         this.content = content;
90     }
91
92     public String getDate() {
93         return date;
94     }
95
96     public void setDate(String date) {
97         this.date = date;
98     }
99
100     public String getSenderWebSite() {
101         return senderWebSite;
102     }
103
104     public void setSenderWebSite(String senderWebSite) {
105         this.senderWebSite = senderWebSite;
106     }
107
108 }

  /Apache-Velocity-java/vms/helloWorld.vm

1 ##test hello world!
2
3 $hello

  /Apache-Velocity-java/vms/userInfo.vm

1 ##测试User
2
3 A: what's your name?
4 B: $user.name
5
6 A: what's your birthday?
7 B: $user.birthday
8
9 A: what's your email address?
10 B: $user.email
11
12 A: good!

  /Apache-Velocity-java/vms/emailTemplate.vm

1 ##测试 email
2
3 $mail.senderName message notification
4 Sender       :   $mail.senderName<$mail.senderMail>        
5 Date         :   $mail.date
6 Receiver     :   $mail.receiverName<$mail.receiverMail>
7
8 Dear $mail.receiverMail:
9 $mail.senderName send a message notification as following:
10
11 $mail.content
12
13 please quick login the $mail.senderWebSite message center and have a look.
14
15                                                       $mail.senderName Team
16            

  因为velocity源码中默认的编码为:

1 # ----------------------------------------------------------------------------
2 # T E M P L A T E  E N C O D I N G
3 # ----------------------------------------------------------------------------
4
5 input.encoding=ISO-8859-1
6 output.encoding=ISO-8859-1

  所以,如果出现乱码我们可以设置velocity的编码格式:

1     VelocityEngine velocityEngine = new VelocityEngine();
2     velocityEngine.setProperty("input.encoding", "UTF-8");
3     velocityEngine.setProperty("output.encoding", "UTF-8");
4     velocityEngine.init();

  这样就可以解决velocity的乱码问题啦...
  源码下载:http://files.cnblogs.com/hongten/Apache-Velocity-java.rar

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-322450-1-1.html 上篇帖子: Apache Tiles 2 Basic Demo 下篇帖子: Apache httpd.conf详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表