groovy 速学 - 31 - Builder 与 Template
发布时间:2020-12-14 16:47:50 所属栏目:大数据 来源:网络整理
导读:目录 Builder 和 Template Builder 构造器 概述 分类 MarkupBuilder SwingBuilder Template 模版 概述 输出 Html 和 Xml 利用模版输出 Sql 结果到 Html 摘要 MarkupBuilder,SimpleTemplateEngine,SqlTemplateEngine Builder 和 Template Builder 构造器 概
目录
摘要
Builder 和 TemplateBuilder 构造器概述Builder(构造器)可以用于构造各种树形结构的数据。 分类
MarkupBuilderXml 部分可以参见 XML 章节的代码 def page = new MarkupBuilder()
// 伪方法 (html,head) 等
page.html {
head { title 'Hello' }
body {
ul {
for (count in 1..3) {
li 'li $count'
}
}
}
}
SwingBuilderdef sb = new SwingBuilder()
def frame = sb.frame(title: 'ToyStore',location: [100,100],size: [400,300],defaultCloSEOperation:
WindowConstants.EXIT_ON_CLOSE) {
label(text: 'hello world')
button(text: 'OK',actionPerformed: {
println 'press OK'
})
} )
frame.pack()
frame.setVisible(true)
Template 模版概述Template 结合 Builder 可以根据模板输出数据。 输出 Html 和 Xml程序代码 def file = new File("coffeetime-groovy/src/test/resources/toy_html.template");
def toys = []
def toy1 = new Toy(toyName: 'toy1',unitPrice: 100)
def toy2 = new Toy(toyName: 'toy2',unitPrice: 200)
def toy3 = new Toy(toyName: 'toy3',unitPrice: 300)
toys << toy1 << toy2 << toy3
def binding = ["title": "Display Toys","toys": toys];
def engine = new SimpleTemplateEngine()
def template = engine.createTemplate(file).make(binding)
println(template.toString())
def outXml = new File('coffeetime-groovy/outputs/toy.html')
outXml.write(template.toString())
模版 <html>
<head>
<title>${title}</title>
</head>
<body>
<table>
<th>Toy Name</th><th>Unit Price</th>
<%for(toy in toys){%>
<tr>
<td>${toy.toyName}</td>
<td>${toy.unitPrice}</td>
</tr>
<%}%>
</table>
</body>
</html>
输出结果 <html>
<head>
<title>Display Toys</title>
</head>
<body>
<table>
<th>Toy Name</th><th>Unit Price</th>
<tr>
<td>toy1</td>
<td>100</td>
</tr>
<tr>
<td>toy2</td>
<td>200</td>
</tr>
<tr>
<td>toy3</td>
<td>300</td>
</tr>
</table>
</body>
</html>
Xml 的生成方式与 Html 基本一致 利用模版输出 Sql 结果到 Html程序 Sql sql = Sql.newInstance(db,username,password,driver)
def binding = ["title": "Display Toys","sql": sql];
def engine = new SimpleTemplateEngine()
def template = engine.createTemplate(file).make(binding)
println(template.toString())
def outXml = new File('coffeetime-groovy/outputs/toy_sql.html')
outXml.write(template.toString())
模版 <html>
<head>
<title>${title}</title>
</head>
<body>
<table>
<th>Toy Name</th><th>Unit Price</th>
<%sql.eachRow("select * from toys"){toy->%>
<tr>
<td>${toy.toyName}</td>
<td>${toy.unitPrice}</td>
</tr>
<%}%>
</table>
</body>
</html>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |