2012-08-28 4 views
0

GWT 응용 프로그램에서 UIBinder를 사용하여 두 개의 Java 클래스를 만들었습니다. EntryPoint 클래스에 선언 된 공통 메소드의 도움으로 한 페이지를 다른 페이지로 이동하려고합니다.GWT 응용 프로그램에서 다른 클래스의 호출 메서드

하지만 UIBinder 클래스의 Button Click Event에서 EntryPoint 클래스의 메서드에 액세스 할 수 없습니다.

내 코드 : HelloUIBinder 클래스에서

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); 
     } 
    }); 
} 

, 로그인에 대한

방법 : 내가 UmbrellaException 오류 메시지를 받고있어이 방법 동안

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

    if(email == "[email protected]" && pass == "abc123") 
    { 
     RootPanel.get().clear(); 

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

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

하지만. UIBinder 클래스 내에서 동일한 논리를 작성하면 정밀 검사를 수행 할 수 있습니다.

이제 클래스 개체를 사용하여 다른 클래스의 메서드를 사용하고 싶습니다.

누구에게 아이디어가 있습니까?

다른 클래스의 메소드 호출시이 오류를 해결하는 데 도움을주십시오.

미리 감사드립니다.

+0

어쩌면 UmbrellaException을 추가해야합니다. –

+0

자세한 설명은 여기에서 확인할 수 있습니다. http://stackoverflow.com/questions/12171744/gwt-class-method-of-different-class-not-calling-getting-umbrellaexception –

답변

0

우산 예외 및 가능한 UIBinder 템플릿에서 스택 추적을 게시해야합니다.

작업 변경 이벤트를 수행하고 활동 내역을 변경하는 것이 좋습니다. 당신은 레이 라이언하여 비디오를 살펴한다

구글 I/O 2009 - GWT 응용 프로그램을 설계하기위한 모범 사례 http://www.youtube.com/watch?v=PDuhR18-EdM

구글 I/O 2010 - GWT 우리는이 http://www.youtube.com/watch?v=M5x6E6ze1x8

애플 리케이션 설계하기 우리 프로젝트의 많은 부분에 대해 MVP와 장소 히스토리를 사용하고 있으며 매우 잘 작동합니다. 간단한 것으로 또는 placeContorller.goTo (새 장소())를 사용하여 탐색 할 수 있습니다. 방법. 또한 책갈피 및 뒤로 단추를 올바르게 사용할 수 있습니다.

다른 옵션은 엔트리 포인트에서 ClientFactory 싱글 톤 구현을 구성하고 간단한 탐색 이벤트를 처리하는 데 사용할 수 있다는 것입니다. 그러나 응용 프로그램이 더 복잡한 장소에서 복잡 해지려면 컨트롤러가 필요합니다.

관련 문제