如何在会话超时后使Wicket中的autocompletetextfield工作

时间:2013-04-01 21:03:50

标签: java session autocomplete wicket

我一直在玩Wicket autocompletetextfield。它有一个问题 - 当会话超时时,如果页面本身没有刷新,它将停止工作。对于我认为的客户来说,这会让我感到非常困惑,我想这并不意味着以这种方式工作。因此,即使会话超时(并且没有刷新页面),如何使Wicket自动完成文本字段工作

自己尝试一下:

  1. 转到http://www.wicket-library.com/wicket-examples-6.0.x/ajax/autocomplete
  2. 在文本字段中写一些内容,例如。 BEL
  3. 等待5分钟(我认为这是他们在示例中使用的默认会话超时)并重试,无需刷新 这页纸。现在你只能得到一个空白的文本字段。

1 个答案:

答案 0 :(得分:2)

我认为你不能。

我知道的唯一解决方法是将Ajax错误处理策略设置为REDIRECT_TO_ERROR_PAGE,评估错误页面中HTTP标头中的Referer-Field,并为发生超时的页面提供链接(或自动重定向)。

YourWicketApplication.java

@Override
public void init() {
    super.init();
    // ...
    getExceptionSettings().setAjaxErrorHandlingStrategy(IExceptionSettings.AjaxErrorStrategy.REDIRECT_TO_ERROR_PAGE);

}

YourErrorPage.java:

public YourErrorPage(...) {
    // ...
    WebRequest request = (WebRequest) getRequest();
    String referer = request.getHeader("Referer"));
    // ... provide a link/auto redirect to this address
}