从 7.* 迁移 wicket 8.*,AbstractRequestCycleListener 上的 onRequestHandlerResolved() 方法有问题
Migration wicket 8.* from 7.*, problem with onRequestHandlerResolved() method on AbstractRequestCycleListener
我正在 Wicket 8.* 迁移,当我在 IRequestCycleListener 方法转换下的 onRequestHandlerResolved() 上挣扎时。
根据我的代码 wicket 7.15.0 中的逻辑结构
public class MyRequestCycleListener extends AbstractRequestCycleListener{
//All methods override here
@Override
public void onRequestHandlerResolved(RequestCycle cycle, IRequestHandler handler) {
if (handler instanceof ListenerInterfaceRequestHandler) {
ListenerInterfaceRequestHandler requestHandler = (ListenerInterfaceRequestHandler) handler;
if (requestHandler.getListenerInterface().getListenerInterfaceClass().isAssignableFrom( IFormSubmitListener.class)) {
//here made some login as well as every onSubmit
}
}
}
}
随着 wicket 8.* 的变化
AbstractRequestCycleListener class 转换为 IRequestCycleListener 接口
ListenerInterfaceRequestHandler 重命名为 ListenerRequestHandler
弃用 RequestListenerInterface 并且 IFormSubmitListener 也会出错
如何在 wicket 8.9.0 上将代码转换为迁移?
应该是这样的:
public class MyRequestCycleListener implements IRequestCycleListener{
@Override
public void onRequestHandlerResolved(RequestCycle cycle, IRequestHandler handler) {
if (handler instanceof ListenerRequestHandler) {
ListenerRequestHandler requestHandler = (ListenerRequestHandler) handler;
if (requestHandler.getComponent() instanceof Form) {
//here made some login as well as every onSubmit
Form form = (Form) requestHandler.getComponent();
}
}
}
}
我正在 Wicket 8.* 迁移,当我在 IRequestCycleListener 方法转换下的 onRequestHandlerResolved() 上挣扎时。
根据我的代码 wicket 7.15.0 中的逻辑结构
public class MyRequestCycleListener extends AbstractRequestCycleListener{
//All methods override here
@Override
public void onRequestHandlerResolved(RequestCycle cycle, IRequestHandler handler) {
if (handler instanceof ListenerInterfaceRequestHandler) {
ListenerInterfaceRequestHandler requestHandler = (ListenerInterfaceRequestHandler) handler;
if (requestHandler.getListenerInterface().getListenerInterfaceClass().isAssignableFrom( IFormSubmitListener.class)) {
//here made some login as well as every onSubmit
}
}
}
}
随着 wicket 8.* 的变化 AbstractRequestCycleListener class 转换为 IRequestCycleListener 接口 ListenerInterfaceRequestHandler 重命名为 ListenerRequestHandler 弃用 RequestListenerInterface 并且 IFormSubmitListener 也会出错
如何在 wicket 8.9.0 上将代码转换为迁移?
应该是这样的:
public class MyRequestCycleListener implements IRequestCycleListener{
@Override
public void onRequestHandlerResolved(RequestCycle cycle, IRequestHandler handler) {
if (handler instanceof ListenerRequestHandler) {
ListenerRequestHandler requestHandler = (ListenerRequestHandler) handler;
if (requestHandler.getComponent() instanceof Form) {
//here made some login as well as every onSubmit
Form form = (Form) requestHandler.getComponent();
}
}
}
}