我正在使用groovy构建一个html电子邮件,我想使用方法设置我的元素样式。我想使用createTableCSS方法将样式设置为我的表。但它不起作用。样式出现在表格标签之外。
String createTableCSS(String width, String border, String cellSpacing, String background, String classes ){
return "'width':'"+width+"'"
}
def responseDoc = job.addDocument("ECommerce_test.html"){out ->
def xmlWriter = new OutputStreamWriter(out)
MarkupBuilder html = new MarkupBuilder(xmlWriter)
html.doubleQuotes = true
html.expandEmptyElements = true
html.omitEmptyAttributes = false
html.omitNullAttributes = false
html.escapeAttributes = false
html.html(lang:'en') {
head {
title('E-Commerce email')
base('target':'_blank')
meta('http-equiv' : 'Content-Type', 'content' : 'text/html; charset=ISO-8859-1')
meta('name':'viewport', 'content':'width=320')
style(type:"text/css", '''
''')
}
body('style':'padding:0; margin:0; -webkit-text-size-adjust:none; width:100%;','bgcolor':'#F2F2F2') {
div(){
table(){ //Container table
tr(){
td('width':'20','class':'nomob'){
}
td('align':'center'){
table(createTableCSS("640", "", "", "", "")){
}
}
td(){
}
}
}
}
} //End <body>
} //End <html>
}
结果如下所示
<table>'width':'640'</table>
它看起来应该是这样的
<table width:"640"></table>
我可以在没有方法的情况下做到这一点,但我真的想知道如何在这种类型的代码中使用方法。
答案 0 :(得分:0)
这里的问题是,使用此方法会导致将一个字符串作为参数提供给表闭包。你需要做的工作是返回地图的方法。你可以用以下方法替换你的方法来解决这个问题:
def createTableCSS(String width, String border, String cellSpacing, String background, String classes) {
return [width: width]
}