【发布时间】:2013-02-02 20:02:56
【问题描述】:
如果可能,我想使用 GWT 的 RequestFactory 进行所有客户端-服务器通信。我的理解是,你必须在web.xml 中将/gwtServlet 映射到RequestFactoryServlet,然后使用@Service 注释告诉RequestFactoryServlet 如何将客户端请求映射到其相应的服务。
有人可以在客户端和服务器端提供此过程的完整代码示例吗?我想从客户端发送一个Widget 对象到服务器端的WidgetProcessor 服务:
public class Widget {
// This is a domain object (POJO).
}
public class WidgetProcessor {
public void processWidget(Widget w) {
// Inspect the Widget. If certain properties contain certain
// values, place it on a queue. Else "process" the Widget
// and persist it to a DB.
if(w.containsSpecialValues())
QueueManager.sendToQueue(w);
else {
// Process widget...
WidgetDAO.save(w);
}
}
}
在非 GWT 上下文中,我只需定义一个 WidgetProcessorServlet,将其映射到 /processWidget,并使其看起来像:
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) {
WidgetProcessor widgetProcessor = new WidgetProcessor();
widgetProcessor.processWidget(getWidgetFromRequest(request));
}
这在RequestFactory-land 中是如何工作的?提前致谢。
【问题讨论】:
-
在回应您的陈述:“RF 可能只是作为数据访问层”和“不可能使用 RF 发送我的小部件......”我会说 RF 远不止数据访问层 - 它为 CRUD 生命周期提供支持,包括优化以仅发送对实体所做的更改。
RequestContext是此次转移的关键。当您想从客户端向实体发送更改时,您可以使用RequestContext.fire(),它会为您完成所有工作。 -
有趣的是你还没有选择答案!!!!!
标签: java gwt servlets requestfactory