使用方法在groovy中设置表格样式

时间:2017-04-21 06:37:27

标签: groovy html-table styling

我正在使用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>

我可以在没有方法的情况下做到这一点,但我真的想知道如何在这种类型的代码中使用方法。

1 个答案:

答案 0 :(得分:0)

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

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