0

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

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

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

@StatelessComponent

公共类 StatelessText 扩展了 TextField

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

StatelessChecker sc = new StatelessChecker();

  sc.onBeforeRender(test);

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

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

4

2 回答 2

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());
}
于 2012-05-15T18:37:50.553 回答
0

你不需要在你的类中显式调用 Statelesschecker。正如 Throsten 所说,您需要在您的 WebApplications 初始化中添加它并将您的 - 要检查的类 - 注释为无状态组件。如果您的应用程序在 web.xml 中被配置为处于开发模式,如果它是有状态的,则在调用此页面时会出现运行时错误。

我不确定我是否理解您在那里尝试做的事情。为什么你自己持有你的类的一个实例?你想建立一个单身人士吗?StatelessText 到底有什么目的?只要没有明确添加 Ajax 行为,通常形式的文本字段将是无状态的。

于 2012-05-16T10:24:26.147 回答