2017-04-21 51 views
1

我正在用groovy构建一个html电子邮件,并且想要使用方法来设置我的元素样式。我想使用createTableCSS方法来为我的表设置样式。但它不起作用。造型出现在表格标签之外。使用方法在groovy中创建样式表

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

这里的问题是,使用此方法会产生一个字符串作为参数提供给表闭包。你需要做的工作是返回地图的方法。你可以通过这个替换你的方法来解决这个问题:

def createTableCSS(String width, String border, String cellSpacing, String background, String classes) { 
    return [width: width] 
} 
+0

这工作正常。谢谢。 :-) – Therese

+0

您的答案现在标记为解决方案吗? – Therese

+0

是的,谢谢你;) – Roland