Калитка: как использовать класс BodyTagAttributeModifier?

я пытаюсь динамически добавить атрибут класса в тег body, и я наткнулся на этот класс. но я не могу понять, как использовать этот класс. у меня есть что-то подобное в моем классе страницы (или классе панели, как я тоже пробовал):

add(new BodyTagAttributeModifier("class", "homepage", this));

это даже не компилируется, говоря, что что-то не так со вторым параметром. но я думаю, что String автоматически считается моделью в калитке, как класс Label. я что-то пропустил здесь?


person fei    schedule 08.08.2009    source источник
comment
Строки не являются моделями автоматически; Я предполагаю, что вас смутил синтаксис конструктора для Label. Правильно, это public Label(java.lang.String id, IModel model), но Wicket предоставляет удобный конструктор public Label(java.lang.String id, java.lang.String label), который просто вызывает Label(id, new Model(label)) wicket.apache.org/docs/wicket-1.3.2/wicket/apidocs/org /апач/   -  person Pops    schedule 01.10.2009


Ответы (2)


Что, если вы просто добавите wicket:id к атрибуту body и воспользуетесь классом AttributeAppender? Или, если у атрибута body уже есть идентификатор, нельзя ли просто использовать этот класс?

http://wicket.sourceforge.net/apidocs/wicket/behavior/AttributeAppender.html

person Ravi Wallau    schedule 09.08.2009

Некоторые компоненты калитки имеют этот ярлык String-to-model (например, Label), но это не общая функция. Вы должны преобразовать свою строку в модель вручную:

add(new BodyTagAttributeModifier("class", Model.of("homepage"), this));
person Sebastian vom Meer    schedule 21.01.2013