J'ai le problème suivant. J'ai créé un taglibrary qui énumère la collection donnée si les données comme suitGrails taglib réinitialisation des propriétés
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>";
}
.
.
.
}
Mon problème est « ColumnHeaders » la propriété est pas créé chaque fois que j'appelle cela taglib. Si j'appelle cela comme à la page X puis à la page Y, la page Y a aussi les en-têtes comme «en-têtes montrés à la page X + en-têtes montrés à la page Y». J'ai essayé le constructeur mais cette classe est construite seulement une fois au moment de la compilation. Quelle est la solution pour cela. Comment puis-je réinitialiser ces valeurs chaque fois que j'appelle ce taglib? Par ailleurs appeler quelque chose comme
columnHeaders = "";
au début ou à la fin de la fermeture listTable supprime les tous ColumnHeaders et aucun en-tête est imprimé.