gwt 服务器端到客户端
gwt server side to client side
我的程序可以在客户端使用"fireEvent",然后异步回调。
但是如果服务器执行错误/错误,如何直接从服务器端调用客户端功能,如 "MessageBox"? (显示错误消息的消息框)
服务器端:
ABC.java
try {
//SFTP coding
} catch (JSchException e) {
System.err.println("Time out for connecting SFTP server");
//What should i put here to call MessageBoxHandler
//MessageBoxHandler(String a, String b);
//cannot call client side function in server side...
}
客户端:
public class MessageBoxHandler {
public MessageBoxHandler(String a, String b) {
MessageBox.alert(a, b,
new Listener<MessageBoxEvent>() {
@Override
public void handleEvent(MessageBoxEvent be) {
if (be.getButtonClicked().getItemId()
.equals(Dialog.OK)) {
//may be a action should be here , nvm
//i just want to show messageBox only
}
}
});
}
}
我不确定我理解你在做什么,但我认为这不是好的方法。您应该做的是使用 RPC(因为这显然是您正在使用的),而不仅仅是在服务器端捕获异常并记录错误,您应该在服务器端方法中抛出异常以在 onFailure
客户端 RPC 回调方法。
您应该检查 _Handling Excpetions 部分下的 this tutorial。
我的程序可以在客户端使用"fireEvent",然后异步回调。
但是如果服务器执行错误/错误,如何直接从服务器端调用客户端功能,如 "MessageBox"? (显示错误消息的消息框)
服务器端: ABC.java
try {
//SFTP coding
} catch (JSchException e) {
System.err.println("Time out for connecting SFTP server");
//What should i put here to call MessageBoxHandler
//MessageBoxHandler(String a, String b);
//cannot call client side function in server side...
}
客户端:
public class MessageBoxHandler {
public MessageBoxHandler(String a, String b) {
MessageBox.alert(a, b,
new Listener<MessageBoxEvent>() {
@Override
public void handleEvent(MessageBoxEvent be) {
if (be.getButtonClicked().getItemId()
.equals(Dialog.OK)) {
//may be a action should be here , nvm
//i just want to show messageBox only
}
}
});
}
}
我不确定我理解你在做什么,但我认为这不是好的方法。您应该做的是使用 RPC(因为这显然是您正在使用的),而不仅仅是在服务器端捕获异常并记录错误,您应该在服务器端方法中抛出异常以在 onFailure
客户端 RPC 回调方法。
您应该检查 _Handling Excpetions 部分下的 this tutorial。