Java 如何在会话超时后使Wicket中的autocompletetextfield工作
我一直在玩Wicket autocompletetextfield。但是它有一个问题——当会话超时时,如果页面本身没有刷新,它将停止工作。我想这对一个客户来说是相当令人困惑的,我想这并不意味着要这样做。因此,即使会话超时(并且不刷新页面),如何使Wicket autocompletetextfield工作 要亲自尝试:Java 如何在会话超时后使Wicket中的autocompletetextfield工作,java,session,autocomplete,wicket,Java,Session,Autocomplete,Wicket,我一直在玩Wicket autocompletetextfield。但是它有一个问题——当会话超时时,如果页面本身没有刷新,它将停止工作。我想这对一个客户来说是相当令人困惑的,我想这并不意味着要这样做。因此,即使会话超时(并且不刷新页面),如何使Wicket autocompletetextfield工作 要亲自尝试: 去 在文本字段中写些东西,如贝尔 等待5分钟(我想这是他们在示例中使用的默认会话超时),然后重试,不刷新 这一页。现在你只会得到一个空白的文本字段 我想你不能 我知道的唯一解决方
@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
}
AutoCompleteTextField是有状态的,因此它需要其页面处于活动状态。您可以尝试使用纯javascript自动完成组件(),并使用Wicket资源生成的JSON(这将是无状态的)。谢谢,这就是我想要的答案。据我所知,我不能将带有AJAX组件的页面设置为无状态(至少在Wicket 1.6x中是这样),因此我必须考虑另一种解决方案。我见过的另一个解决方案是每X分钟ping一个servlet以保持会话的活动性。