从7. *迁移小门8*,AbstractRequestCycleListener上的onRequestHandlerResolved方法出现问题

问题描述

当我在IRequestCycleListener方法转换下的onRequestHandlerResolved()上挣扎时,我正在进行Wicket 8. *迁移。

按照我在代码小门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
           }
       }
    }
}

随着检票口8. *的变化 AbstractRequestCycleListener类转换为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();
            }
        }
    }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...