问题
I want to call method from different class for navigation of pages.
So I'm passing "UserID" & "Password" for authentication and after that it will navigate to next page.
My Code:
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;
}
}
By this code, I want to call onLogin() method of HelloUIBinder class by passing two parameters.
Code for 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");
}
}
But, while running application I'm getting Error Message:
"com.google.gwt.core.client.JavaScriptException: (TypeError): 'null' is not an object"
So what's an issue regarding this error ?
Please tell me any solution as soon as possible.
Thanks in advance.
回答1:
Essentially we have a NullPointerException. The only thing that can be null in onLogin seems to be animationHelper so far and, you didn't post any code to initialize it. However, things would be more relyable having a stacktrace. You should really change your code to deliver the trace. If you need more information you should
- Post the stacktrace
- Post the code used to initialize animationHelper
来源:https://stackoverflow.com/questions/12171744/gwt-class-method-of-different-class-not-calling-getting-umbrellaexception