不同类的GWT类方法不是要求及获得UmbrellaException(GWT class metho

2019-10-17 04:58发布

我想从不同的类调用方法的页面的导航。

所以我传递“用户名”和“密码”的身份验证之后,它会浏览到下一个页面。

我的代码:

public class Test2 extends Composite {

HelloUIBinder hb;

AnimationHelper animationHelper;
TestPage tp;

String strEmail, strPass;

private static Test2UiBinder uiBinder = GWT.create(Test2UiBinder.class);

interface Test2UiBinder extends UiBinder<Widget, Test2> {
}

@UiField TextBox txtEmail;
@UiField PasswordTextBox txtPass;
@UiField Button btnLogin;

public Test2() {
    initWidget(uiBinder.createAndBindUi(this));

    btnLogin.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            // TODO Auto-generated method stub

            strEmail = txtEmail.getText().toString();
            strPass = txtPass.getText().toString();

            Window.alert(strEmail);
            Window.alert(strPass);

            GWT.setUncaughtExceptionHandler(new GWT.UncaughtExceptionHandler() {

                @Override
                public void onUncaughtException(Throwable e) {
                    // TODO Auto-generated method stub
                    Throwable un = unwrap(e);

                    Window.alert(un.toString());
                }
            });

            hb.onLogin(strEmail, strPass);
        }
    });
}

public Throwable unwrap(Throwable e)
{
    if(e instanceof UmbrellaException)
    {
        UmbrellaException ue = (UmbrellaException) e;
        if(ue.getCauses().size() == 1)
        {
            return unwrap(ue.getCauses().iterator().next());
        }
    }
    return e;
}
}

通过这个代码,我想传递两个参数来调用onLogin()HelloUIBinder类的方法。

代码onLogin:

public void onLogin(String email, String pass)
{
    Window.alert(email);
    Window.alert(pass);

    if(email == "abc@yahoo.com" && pass == "abc123")
    {
        RootPanel.get().clear();

        tp = new TestPage();
        RootPanel.get().add(tp);

        animationHelper.goTo(tp, Animation.SLIDE);
    }
    else
    {
        Window.alert("Authentication Failed");
    }
}

但是,在运行应用程序我得到错误信息:

"com.google.gwt.core.client.JavaScriptException: (TypeError): 'null' is not an object"

那么,有什么关于这个错误的问题?

请尽快告诉我任何解决方案。

提前致谢。

Answer 1:

从本质上讲,我们有一个NullPointerException。 这可以在onLogin空的唯一的事情似乎是animationHelper到目前为止,并且你没有张贴任何代码进行初始化。 然而,事情就会有一个堆栈跟踪更relyable。 你真的应该改变你的代码发送跟踪。 如果您需要了解更多信息,你应该

  • 张贴堆栈跟踪
  • 发布用于初始化animationHelper代码


文章来源: GWT class method of different class not calling & getting UmbrellaException