Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在GWT应用程序中从不同类调用方法_Java_Gwt_Uibinder_Entry Point - Fatal编程技术网

Java 在GWT应用程序中从不同类调用方法

Java 在GWT应用程序中从不同类调用方法,java,gwt,uibinder,entry-point,Java,Gwt,Uibinder,Entry Point,我在GWT应用程序中使用UIBinder创建了两个java类。 我想借助EntryPoint类中声明的公共方法将一个页面导航到另一个页面 但是,我无法在UIBinder类的按钮单击事件上访问EntryPoint类的方法 我的代码: HelloUIBinder hb; @UiField Button btnLogin; public Test2() { initWidget(uiBinder.createAndBindUi(this)); btnLogin.addClickHa

我在GWT应用程序中使用UIBinder创建了两个java类。 我想借助EntryPoint类中声明的公共方法将一个页面导航到另一个页面

但是,我无法在UIBinder类的按钮单击事件上访问EntryPoint类的方法

我的代码:

HelloUIBinder hb;
@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);

            hb.onLogin(strEmail, strPass);
        }
    });
}
在他的班上

登录方法:

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");
    }
}
但是,当使用此方法时,我会收到umberlla异常错误消息。 若我在UIBinder类中编写相同的逻辑,那个么这将是工作良好的条件检查

现在我想通过使用class对象来使用来自不同类的方法

有人知道吗

请帮助解决从不同类调用方法时出现的此错误


提前感谢。

您应该发布伞例外中的堆栈跟踪,可能还有UIBinder模板

我真的建议使用地点更改事件和历史映射器来进行活动更改。你应该看看Ray Ryan的视频

Google I/O 2009-构建GWT应用程序的最佳实践

Google I/O 2010-构建GWT应用程序

我们在很多项目中都使用了MVP和place history,效果非常好。您可以使用简单的或使用placeContorller.goTo(new Place())导航;方法。这也可以使书签和后退按钮正常工作


另一个选项是,您可以在入口点中构造ClientFactory singleton实现,并使用它来处理简单的导航事件。但是,如果您的应用程序将来会变得更复杂,那么控制器是一个不错的选择。

也许您应该添加雨伞例外。您可以在此处查看详细说明: