首先,如果你对Velocity不是很了解,还是建议你去apache的官方网站上去走走....
这是velocity的官网:http://velocity.apache.org/
当然如果你对英文文档不是很感冒,这里也有好的资料:
Velocity 文档(1)
Velocity 文档(2)
Velocity 文档(3)
下面我就正式说说我做的项目啦...
项目结构:
运行"helloWorld.vm"模板效果:
运行"userInfo.vm"模板效果:
运行"emailTemplate.vm"模板效果:
==============================================================
代码部分:
==============================================================
/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