Gwt 向RPC成功的模块发送触发器

Gwt 向RPC成功的模块发送触发器,gwt,rpc,Gwt,Rpc,我有一个包含所有RPC的类。 其中之一是: public void authenticateUserCall(String username,String password ,DBConnectionAsync rpcService) { AsyncCallback<UserIdent> callback = new AsyncCallback<UserIdent>() { public void onFailure(Throwable cau

我有一个包含所有RPC的类。 其中之一是:

public void authenticateUserCall(String username,String password ,DBConnectionAsync rpcService)
{


    AsyncCallback<UserIdent> callback = new AsyncCallback<UserIdent>() {
        public void onFailure(Throwable caught) {

            Window.alert("Wrong Username or Password"); 
        }


        public void onSuccess(UserIdent result) {


            Window.alert(result.getUserName()); 

        }





    };

    rpcService.authenticateUser(username, password, callback);
 }
public void authenticateUserCall(字符串用户名、字符串密码、DBConnectionAsync rpcService)
{
AsyncCallback callback=新的AsyncCallback(){
失败时的公共无效(可丢弃){
警告(“错误的用户名或密码”);
}
成功时公共无效(UserIdent结果){
alert(result.getUserName());
}
};
rpcService.authenticateUser(用户名、密码、回调);
}
如果RPC成功,我想将页面的布局更改为用户的主页面。 那么,如何向onModule发送RPC成功的消息呢? 我不想在onSuccess中构建布局,也无法清除登录布局,因为onSuccess方法中没有登录布局。
正确的方法是什么?

选项1:

一些建议是将AsyncCallback作为参数传递给AuthenticateAserCall。这样,调用方就可以处理成功

选项2:推荐

另一个给您带来更多灵活性的选项是使用触发自定义AuthenticationEvent。我用它来处理角色之类的事情。例如,当用户成功通过身份验证时,它将返回有关用户的一些信息,如用户名、密码和角色。然后,我使用EventBus触发一个AuthenticationEvent,其中包含有关用户的此信息。我的任何观点和活动都可以在事件总线上注册此事件并进行相应处理。例如,如果用户不是管理员,我的许多视图将禁用功能。当我的一个活动处理此事件时,它将灰显需要管理员访问的操作按钮