2012-05-15 3 views
0

Я создал лицо без компонента в Wicket 1,5, путем расширения компонента и давая @StatelessComponent аннотации,Создание лиц без компонентов

Я пытался проверить компонент является состоянием/апатрида с StatelessChecker.

Но я не могу проверить, вот код, который я пытался.

@StatelessComponent

общественного класса StatelessText расширяет TextField

// Клиент класса
StatelessText тест = новый StatelessText ("тест");

StatelessChecker sc = new StatelessChecker();

sc.onBeforeRender(test); 

Я не вижу ничего на консоли или каких-либо исключений/ошибок.

Возможно, я не использую правильный путь. Может ли кто-нибудь, пожалуйста, направить меня сюда. Оцените справку.

ответ

0

Вам не нужно явно вызывать Statelesschecker в своем классе. Как сказал Тростен, вам нужно добавить, что в вашем WebApplications init и аннотировать свой класс для проверки - как Statelesscomponent. Если ваше приложение подтверждено, что оно находится в режиме разработки в вашем web.xml, вы получите ошибку времени выполнения при вызове этой страницы, если это Statefull.

Я не уверен, что понял, что вы пытаетесь сделать там. почему вы держите экземпляр своего класса в себе? вы пытаетесь построить синглтон? И какой целью является StatelessText? текстовое поле в обычной форме будет безграждан, так как длинные строки явно не добавили к нему поведение Ajax.

+0

Спасибо за полезное пособие. Мы пытаемся создать фрейм поверх Wicket, который будет использоваться в нашем приложении. –

1

вы должны зарегистрировать StatelessChecker во время инициализации WicketApplication.

/** 
* @see org.apache.wicket.Application#init() 
*/ 
@Override 
public void init() { 
    super.init(); 

    // might want to check if you're in dev mode or not... 
    getComponentPreOnBeforeRenderListeners().add(new StatelessChecker()); 
} 
+0

Торстен, я очень ценю ваш ответ. Я сделал то, что вы предложили, но где узнать, что данный компонент является состоянием/неудовлетворительным. что onBeforeRender(); Сделаю ? и где я могу получить true/false для данного компонента без состояния (возможно, как isStateless()) –

+0

Хорошо, если вы зарегистрируете StatelessChecker в своем приложении, он будет генерировать исключение для каждого компонента, который калитка пытается отобразить, и который не является апатридом. Вам не нужно ничего делать, просто посетите компонент, который вы объявили как StatelessComponent. –

+0

Я не могу видеть какое-либо исключение ни в консоли, ни в приложении, возможно, я не использую его, поскольку он должно быть. Не могли бы вы объяснить, как создать компонент без гражданства и как проверить, является ли он без гражданства?. Спасибо за вашу помощь –

Смежные вопросы