嗨,我是新手gwt(java based gui)
。在这里,我正在尝试进行 GWT 服务器调用。
我想将我的保存MyBean
到我的Database
.
后来我不得不update,delete etc..
有什么可能性,我怎样才能做到这一点?
嗨,我是新手gwt(java based gui)
。在这里,我正在尝试进行 GWT 服务器调用。
我想将我的保存MyBean
到我的Database
.
后来我不得不update,delete etc..
有什么可能性,我怎样才能做到这一点?
使用 GWT 访问数据库有多种可能性,例如RequestFactory
, RPC
。
在开始使用服务器调用之前,请通过,
GWT RPC(使服务器异步调用)
RequestFactory(GWT-RPC 的替代方案,用于创建面向数据的服务。)
经过这里的链接是如何制作 RPC 的示例。
来到您的 MyBean CRUD 操作,简而言之,简单的 RPC 结构如下:
GWT Code <===> InterfaceAsync <===> Interface (Synchronous)<===> Server Code
我正在尝试向您解释它自己的元素。
同步接口(整个 RPC 的中心):
import com.google.gwt.user.client.rpc.RemoteService;
public interface BeanProcessRPCInterface extends RemoteService
{
public Mybean processMybeanRPC(Mybean bean);
}
A同步接口(客户端的关键部分):
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface BeanProcessRPCInterfaceAsync
{
public void processMybeanRPC (Mybean bean, AsyncCallback callback);
}
在这里,您使用Service
实现“BeanProcessRPCInterface”的(等于servlet)
public class BeanProcessRPCImpl extends
RemoteServiceServlet implements BeanProcessRPCInterface
{
private static final long serialVersionUID = 1L;
public Mybean processMybeanRPC(Mybean bean)
{
//Process your widget here (CRUD operations)
}
**you can override doget,doPost,doDelete....etc along with your methods
}
在您的 web.xml 中映射上述类;
<servlet>
<servlet-name>beanrpc</servlet-name>
<servlet-class>com.server.BeanProcessRPCImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>beanrpc</servlet-name>
<url-pattern>/beanrpc</url-pattern>
</servlet-mapping>
最后在您的 GWT 代码中。使用如下服务
在代码中使用:
//注册服务。
private final BeanProcessRPCInterfaceAsync beanService =
GWT.create(BeanProcessRPCInterface.class);
ServiceDefTarget endpoint = (ServiceDefTarget) service;
endpoint.setServiceEntryPoint('beanrpc');
使用回调请求服务器
beanService.processMybeanRPC(mybean, callback);
AsyncCallback callback = new AsyncCallback()
{
public void onFailure(Throwable caught)
{
//Do on fail
}
public void onSuccess(Object result)
{
//Process successfully done with result (result is which you
// returned in impl class) .
}
};
PS .注意包结构:
BeanProcessRPCInterfaceAsync ,BeanProcessRPCInterface应该在 client* 包中
MyBean类应该在 shared* 包中
BeanProcessRPCImpl 应该在 server* 包中
祝你好运。