Я застрял -
Мне нужно, чтобы панель калитки могла добавить атрибут класса к тегу любой страницы, на которой он находится.Пример использования:
Java:
add(new SpecialSidebarComponent("sidebar"));
Сгенерированный HTML:
<body class="sidebar">
...
<div id="sidebar">My Wicket Panel</div>
...
</body>
Я не могу добавить wicket: id и сделать тело компонентом Wicket, потому что это делаеточень сложно добавить компоненты на страницу в большой иерархии страниц, которая у меня есть, и все равно также трудно позволить Panel изменять атрибут body.
Я думал, что BodyTagAttributeModifier может быть для этого, нопо-видимому, это для чего-то другого и не может заставить его работать ( Wicket: как использовать класс BodyTagAttributeModifier? )
Любые полезные идеи?
Обновление:
Если посмотреть на него, кажется, что класс BodyTagAttributeModifier * для родительского тега Panel, а не тег страницы:
Пример (синтаксис Scala):
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))
}
Шаблон:
<html>
<body>
<div wicket:id="sidebar">Sidebar</div>
</body>
</html>
Оказано:
<html>
<body>
<div class="layout-class">
<h1>Hello World!</h1>
</div>
</body>
</html>
Очень запутанное имя ИМХО.Не решает проблему, но, по крайней мере, имеет больше смысла.