T5 マスター ディスパッチャに貢献できます
public class AjaxAccessController implements Dispatcher {
@Override
public boolean dispatch(Request request, Response response) throws IOException {
// Si no hay session y la petición es ajax, recargar la página
Session session = request.getSession(false);
if (session == null && request.isXHR()) {
OutputStream os = response.getOutputStream("application/json;charset=UTF-8");
os.write("{\"script\":\"window.location.reload();\"}".getBytes());
os.flush();
return true;
}
return false;
}
}
AppModule.java で
public static void bind(ServiceBinder binder) {
// binder.bind(MyServiceInterface.class, MyServiceImpl.class);
// Make bind() calls on the binder object to define most IoC services.
// Use service builder methods (example below) when the implementation
// is provided inline, or requires more initialization than simply
// invoking the constructor.
// Id de AjaxAccessController
binder.bind(AjaxAccessController.class).withId("AjaxAccessController");
}
public void contributeMasterDispatcher(
OrderedConfiguration configuration,
@InjectService("AjaxAccessController") Dispatcher accessController) {
configuration.add("AjaxAccessController", accessController, "before:ComponentEvent");
}
したがって、セッションなしの ajax リクエストごとに、ページがリロードされ、インデックス ページにリダイレクトされます。