今天在开发中,要采用play框架的邮件模板来发送邮件。
play模板引擎文档资料地址:http://playframework.com/documentation/1.2.5/templates
看了文档,一知半解,照着文档写了一个html,结果发现调用出错,错误显示render()时找不到html的map,null抛异常。追查半天也没追查出来,后来问长伟才得以解决。render时,有个默认参数是模板名,要将原来的map作value,以模板名作为key封装在一个新的map中,render的时候调用这个新的map解析,才可以找到原来的map,进而取出里面的值。用法如下:
service或controller里面这样使用:
Template template = TemplateLoader.load(templateName); Map<String, Object> dataBinding= Maps.newHashMap(); dataBinding.put("params", params); String content = template.render(dataBinding);
html文件中这样使用:
#{list items:params.keySet(),as:'key'} <tr><td>${key}</td><td>${params.get(key)}</td></tr> #{/list}