初识Velocity

11 篇文章 0 订阅

  最近一直在自己学些东西,慢慢的发现其实java技术真是个无底洞啊!做软件开发也是如此吧!每天都有无数的新知识,每天学习都学不完。我找mentor要sockect编程的书籍,他说他平时用的时候时候才会拿来看看,平时都不会去刻意学习。无意间在书上看到发送邮件,想想我们部门做的项目里面也有一个邮件的代理,看看代码主要是两个模块,一个是vm模板,一个是email内容。

  有了模板和参数,这时候有了Velocity。Velocity是一种java的模板技术,该项目由Apache提出,由另外一种引擎技术Webmacro引申而来。它是一种基于Java的模板引擎,但允许任何简单而强大的模板语言来引用定义在Java中的对象。Velocity就是MVC架构的一种实现,但它更多的是关注在Model,View之间。

1、创建velocity模版(其实和html一样)、

<html> 
<title>Hello Velocity</title> 
<body> 
Welcome  $name  to Javayou.com! 
today is  $date. 
</body>
</html>

2. 使用Velocity将参数传到模板里面

ClientConfig config = new DefaultClientConfig();
	Client client = Client.create(config);
	ClientResponse clientResp = null;
	try {
		WebResource webResource = client.resource(AppConfig.getConfig("server")
				+ "/displayFile/vm/"
				+ vmName + "/vm");//从文件服务器获取vm文件

		clientResp = webResource.post(ClientResponse.class);
		InputStream is = clientResp.getEntityInputStream();

		String content= IOUtils.toString(is, "UTF-8");
<span style="white-space:pre">	</span>}catch(Exception e){}

用Velocity构建消息

MimeMessagePreparator preparator = new MimeMessagePreparator() {
			public void prepare(MimeMessage mimeMessage) throws Exception {
				MimeMessageHelper message = new MimeMessageHelper(mimeMessage, "UTF-8");
				mimeMessage.setHeader("Content-Transfer-Encoding", "8bit");
				message.setFrom(request.getFrom());
				message.setTo(request.getTos());
				if (request.getCcs()!=null){
					message.setCc(request.getCcs());
				}
				if (request.getBccs()!=null){
					message.setBcc(request.getBccs());
				}
				message.setSubject(request.getSubject());
				message.setSentDate(new Date());
				log.info("send msg:"+content);
				message.setText(buildmsg(content, request.getParameters()), true);
			}
			
			private String buildmsg(final String content, Map<String, String> parameters){
				 StringWriter w = new StringWriter();
				  VelocityContext context = new VelocityContext();
				  if (parameters!=null){
					  for (String key:parameters.keySet()) {
						  context.put(key, parameters.get(key));
					  }
				  } 
				 Velocity.evaluate( context, w, "", content );
				 log.info("original text:"+content);
				 log.info("post text:"+w.toString());
				 return w.toString();
				 
			}
		};
		mailSender.send(preparator);
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值