Groovy笔记(11)_模板技术

<p><span style="font-size: medium;"><strong>模板引擎概述</strong></span></p>
<p></p>
<p></p>
<p>1、模板技术:从模型中分离视图的一种手段,可以降低应用程序的维护成本</p>
<p>2、Java语言具有Velocity和FreeMarker等</p>
<p>3、模板引擎与XSLT很类似</p>
<p>4、可以创建一个模板,包含一些占位符,在运行时替换为实际的值。模板引擎然后可以通过读取该模板并在这些占位符和运行时的值之间家里映射来实现对模板的转换。</p>
<p></p>
<p>5、</p>
<p>定义模板toy_xml.template</p>
<p></p>
<p><toy></p>
<p> <toyName>${toyName}</toyName></p>
<p> <unitPrice>${unitPrice}</unitPrice></p>
<p></toy></p>
<p></p>
<p>${} ->就是占位标示符,{}中的是占位符参数</p>
<p></p>
<p></p>
<p><span style="font-size: medium;"><strong>实例化模板</strong></span></p>
<p></p>
<p>1、</p>
<p>import groovy.text.Template</p>
<p>import groovy.text.SimpleTemplateEngine</p>
<p>import java.io.File</p>
<p>class ToyTemplateOutXml{</p>
<p> static void main(args){</p>
<p> def file = new</p>
<p> File('toy_xml.template')</p>
<p> def binding= [<span style="color: #ff0000;">'toyName'</span>:'toy1',<span style="color: #ff0000;">unitPrice</span>:'100']</p>
<p> def engine = new <span style="color: #0000ff;">SimpleTemplateEngine</span>()</p>
<p> def template = engine.<span style="color: #0000ff;">createTemplate</span>(file).<span style="color: #0000ff;">make</span>(binding)</p>
<p> prinltn template.toString()</p>
<p> }</p>
<p>}</p>
<p></p>
<p></p>
<p>例子1:</p>
<p>1、toy_html.template</p>
<p><html></p>
<p><head></p>
<p><title><span style="color: #0000ff;">${title</span><span style="color: #0000ff;">}</span>>/title></p>
<p></head></p>
<p><body></p>
<p> <talbe></p>
<p> <th>Toy Name</th><th>Unit Price</th></p>
<p> <span style="color: #ff0000;"><%for(toy in <span style="color: #0000ff;">toys</span>){%></span></p>
<p><span style="color: #ff0000;"> <tr> </span></p>
<p><span style="color: #ff0000;"> <td>${toy.toyName}</td></span></p>
<p><span style="color: #ff0000;"> <td>${toy.unitPrice}</td></span></p>
<p><span style="color: #ff0000;"> </tr></span></p>
<p><span style="color: #ff0000;"> <%}%></span></p>
<p></table></p>
<p></body></p>
<p></html></p>
<p></p>
<p>2、ToyTemplateOutHtml.groovy</p>
<p>class ToyTemplateOutHtml{</p>
<p> static void main(args){</p>
<p> def toys=[]</p>
<p>def file = new File('toy_html.template')</p>
<p> def toy1= new Toy(toyName:'toy1',unitPrice:'100')</p>
<p> def toy2= new Toy(toyName:'toy2',unitPrice:'200')</p>
<p> def toy3= new Toy(toyName:'toy3',unitPrice:'300')</p>
<p> toys <<toy1<<toy2<<toy3</p>
<p> def <span style="color: #ff0000;">binding</span> =['toys':toys,'title':'Display Toy!']</p>
<p>def engine = new<span style="color: #ff0000;"> SimpleTemplateEngine()</span></p>
<p> def template = engine.<span style="color: #ff0000;">createTemplate</span>(file).<span style="color: #ff0000;">make</span>(binding)</p>
<p> println template.toString()</p>
<p> def outHtml = new File('toy.html')</p>
<p>if(outHtml.exists()){</p>
<p>outHtml.delete()</p>
<p> }</p>
<p>outHtml.append(template)</p>
<p> }</p>
<p>}</p>
<p></p>
<p></p>
<p>例子2:</p>
<p>1、toy_html_sql.template</p>
<p><html></p>
<p><head></p>
<p><title>${title}</title></p>
<p></head></p>
<p><body></p>
<p> <table></p>
<p> <th>Toy Name</th><th>Unit Price</th></p>
<p> <span style="color: #ff0000;"><%<span style="color: #0000ff;">sql</span>.eachRow("select * from toys"){toy -> %></span></p>
<p><span style="color: #ff0000;"> <tr></span></p>
<p><span style="color: #ff0000;"> <td>${toy.toyName}</td></span></p>
<p><span style="color: #ff0000;"> <td>${toy.unitPrice}</td></span></p>
<p><span style="color: #ff0000;"></tr></span></p>
<p><span style="color: #ff0000;"><%}%></span></p>
<p><span style="color: #ff0000;"> </table></span></p>
<p></body></p>
<p></html></p>
<p>2、ToyTemplateSqlOutHtml.groovy</p>
<p>class ToyTemplateSqlOutHtml{</p>
<p> static void main(args){</p>
<p> def file = new File('toy_html_sql.template')</p>
<p> def db = '...'; def user = '...' ; def password = '...' def driver = '...'</p>
<p> def <span style="color: #0000ff;">sql</span> = Sql.newInstance(db,user,password,driver)</p>
<p> def binding = ['sql': <span style="color: #0000ff;">sql</span> , 'title':'Display Toy!']</p>
<p> def template = engine.<span style="color: #ff0000;">createTemplate</span>(file).<span style="color: #ff0000;">make</span>(binding)</p>
<p> println template.toString()</p>
<p> def outHtml = new File('toy.html')</p>
<p> if(outHtml.exists()){</p>
<p> outHmlt.delete()</p>
<p> }</p>
<p> outHtml.append(template)</p>
<p> }</p>
<p>}</p>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值