Ik zit vast -
Ik wil dat een Wicket Panel een class -kenmerk kan toevoegen aan de<body> tag of whatever page it's on.
Example usage:
Java:
add(new SpecialSidebarComponent("sidebar"));
Gegenereerde HTML:
<body class="sidebar">
...
<div id="sidebar">My Wicket Panel</div>
...
</body>
Ik kan geen wicket: id toevoegen en het lichaam een Wicket-component maken, omdat dit het erg moeilijk maakt om componenten toe te voegen aan een pagina in de grote pagina-hiërarchie die ik heb, en het staat nog steeds niet eenvoudig toe dat een paneel de lichaamsattribuut.
Ik dacht dat BodyTagAttributeModifier hiervoor mogelijk is, maar blijkbaar is het voor iets anders en kan het niet laten functioneren ( Wicket: hoe gebruik je de klasse BodyTagAttributeModifier? )
Nuttige ideeën?
Bijwerken:
Als u ernaar kijkt, lijkt de klasse BodyTagAttributeModifier alleen te zijn voor de bovenliggende tag van een paneel, niet voor de pagina's.<body> tag:
Voorbeeld (Scala-syntaxis):
class Home extends WebPage {
add(new Sidebar("sidebar"))
}
class Sidebar(id: String) extends Panel(id) {
add(new BodyTagAttributeModifier("class", true, new Model("layout-class"), getParent))
}
Sjabloon:
<html>
<body>
<div wicket:id="sidebar">Sidebar</div>
</body>
</html>
gesmolten:
<html>
<body>
<div class="layout-class">
Hello World!
</div>
</body>
</html>
Zeer verwarrende naam IMHO. Lost het probleem niet op, maar is in ieder geval logischer.