创建无状态组件

时间:2012-05-15 17:29:01

标签: java wicket

我在Wicket 1.5中创建了一个无状态组件,通过扩展组件并提供@StatelessComponent注释,

我试图使用StatelessChecker检查组件是有状态/无状态的。

但是我无法检查,这是我正在尝试的代码。

@StatelessComponent

公共类StatelessText扩展TextField

//客户端类
StatelessText test = new StatelessText(“test”);

StatelessChecker sc = new StatelessChecker();

  sc.onBeforeRender(test);

我在控制台上看不到任何内容或任何异常/错误。

也许我没有使用正确的方法,任何人都可以在这里指导我。 感谢帮助。

2 个答案:

答案 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行为。