我有以下问题。我创建了一个 TagLibrary,它列出了给定的集合,如果数据如下
class LisTagLib {
static final CONTEXT = this.class.name
/**
* Current data from collection
*/
def currentData;
String columnHeaders = "";
List writtenHeaders = [];
// draw main table
Closure listTable = { attrs, body ->
def writer = getOut()
writer << "<table>";
writer << "<thead>"
writer << "<tr>"
writer << columnHeaders
writer << "</tr>"
writer << "</thead>"
writer << "<tbody>"
if(attrs.source){
attrs.source.each() { value ->
writer << "<tr>";
writer << body()
writer << "</tr>";
}
}
// output the body
writer << "</tbody>";
writer << "</table>";
}
.
.
.
}
我的问题是每次调用此标记库时都没有创建“columnHeaders”属性。如果我在第 X 页然后在第 Y 页中调用它,则第 Y 页的标题也称为“第 X 页中显示的标题 + 第 Y 页中显示的标题”。我尝试了构造函数,但是这个类在编译时只构造一次。有什么解决方案。每次调用此标记库时如何重置这些值?顺便说一下
columnHeaders = "";
在 listTable 闭包的开头或结尾删除所有 columnHeaders 并且不打印任何标题。