0

我的理解是,GWT RequestFactory ( RF ) API 用于构建面向数据的服务,从而客户端实体可以直接与其服务器端 DAO 进行通信。

我的理解是,当您从客户端触发 RF 方法时,RequestFactoryServlet首先接收请求的是服务器上的生活。此 servlet 的作用类似于 aDispatchServlet并将请求路由到正确的服务,该服务与数据存储中的单个实体(模型)相关联。

我习惯于编写可能将请求传递给某些业务逻辑(如 EJB)的 servlet,然后计算一些响应以发回。这可能是一个 JSP 视图、一些复杂的 JSON (Jackson) 对象或其他任何东西。

在所有 RF 示例中,我没有看到这些 servlet 存在,我想知道它们是否存在于 GWT-RF 领域。如果RequestFactoryServlet自动将请求路由到正确的 DAO 和方法,并且 DAO 方法是响应中返回的内容,那么我可以看到 GWT RF 甚至不使用传统 servlet 的场景。(1) 是这样吗?

无论如何,在我的 GWT 应用程序中,有时我想点击特定的 url,例如http://www.example.com?foo=bar. (2) 我可以为此使用射频吗?如果可以,如何使用?

我想如果我能看到两个具体的例子,并排运行 GWT RF,我就能把所有的点联系起来:

  • 场景 #1:我有一个Person实体,其方法包括isHappy(),isSad()等,需要与服务器端 DAO 交互;和
  • 场景 #2:我想触发一个 HTTP 请求http://www.example.com?foo=bar并手动检查 HTTP 响应

如果可以使用 RF API 完成这两者,那将是我的首选。如果后一种情况不能用 RF 完成,那么请解释为什么以及 GWT 首选的替代方案是什么。提前致谢!

4

1 回答 1

0

1.-请求工厂不仅适用于实体,也适用于服务,因此您可以使用从客户端调用的方法在服务器端定义任何服务。当然,当您使用 RF 服务时,它们能够处理某些类型(原始、盒装原始、集合、列表和 RF 代理)

@Service(value=RfService.class, locator=RfServiceLocator.class)
public interface TwService extends RequestContext {
  Request<String> parse(String value);
}

public class RfService {
public String parse(String value) {
  return value.replace("a", "b");
}

2.- RF 不被认为接收除 RF servlet 产生的其他消息有效负载,并且您可以在客户端使用 RF 做的最多的事情是请求托管在不同站点的服务(当您将服务器和客户端部署在不同的站点时)主机)。

您可以使用 gwt world 中的其他机制从其他 url 获取数据,看看 gwtquery Ajax and data-binding或这篇文章

于 2012-11-12T15:02:09.203 回答