我在Wicket 1.5中创建了一个无状态组件,通过扩展组件并提供@StatelessComponent注释,
我试图使用StatelessChecker检查组件是有状态/无状态的。
但是我无法检查,这是我正在尝试的代码。
@StatelessComponent
公共类StatelessText扩展TextField
//客户端类
StatelessText test = new StatelessText(“test”);
StatelessChecker sc = new StatelessChecker();
sc.onBeforeRender(test);
我在控制台上看不到任何内容或任何异常/错误。
也许我没有使用正确的方法,任何人都可以在这里指导我。 感谢帮助。
答案 0 :(得分:1)
你必须在WicketApplication的初始化期间注册StatelessChecker。
/**
* @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());
}
答案 1 :(得分:0)
您不需要在类中明确调用Statelesschecker。正如Throsten所说,您需要在WebApplications init中添加它并注释要检查的类 - 作为Statelesscomponent。如果您的应用程序在您的web.xml中被设置为处于开发模式,则在调用此页面时,如果它是Statefull,则会出现运行时错误。
我不确定我明白你要做什么。你为什么要拿着你班上的一个实例呢?你想建立一个单身人士吗?无论如何,StatelessText的目的是什么?通常形式的Textfield将是无状态的,因为没有明确添加Ajax行为。