无状态Apache Wicket无状态页面/请求

Mat*_*att 5 java wicket

所以我正在阅读Wicket标签下的另一个问题,比较Apache WicketApache Click.在我看来,这是一个简明的解释.我比Wicket世界更熟悉Click世界.

我读到的其中一条评论是你可以制作无状态的Wicket页面.我开始考虑这个问题,无法找到一种方法来为无状态的东西发出请求或页面请求.在某些情况下,这肯定会派上用场.那么如何在没有状态的情况下开始使用Wicket?

Nor*_*ász 16

Wicket默认是无状态的,并在需要时切换到有状态模式.打破无状态模式非常容易.

我发现使用wicket-devutils项目@StatelessComponent中的无状态页面和无状态组件进行注释很有用.然后我在我的方法中添加如下:StatelessCheckerWebApplication.init()

protected void init(){
    ...
    this.addPostComponentOnBeforeRenderListener(new StatelessChecker());
    ...
}
Run Code Online (Sandbox Code Playgroud)

这样我总是得到关于违规有状态组件的例外.


Geo*_*edy 8

如果页面是可收藏的并且不包含任何非无状态组件/行为,则页面将自动无状态并且不会存储在会话中.我认为只要用户只访问无状态页面,就不会创建会话.在大多数情况下,如果关于如何显示页面的所有内容都可以仅通过no-args构造函数或采用PageParameters参数的构造函数来确定.普通的Link和Form类不是无状态的,因此您需要使用StatelessForm和StatelessLink.