add/read 参数 to/from url

add/read parameters to/from the url

如果我在Objective-C代码中给url加上参数,是否可以从客户端读取?

示例:

- (NSURL *)serverURL {
    return [NSURL URLWithString:@"http://rap.eclipsesource.com/demo?parametername=value"];
}

在 Client-JavaCode 中,我可以这样获取参数的值:

String parameter = RWT.getRequest().getParameter("parametername");

如果我使用浏览器访问 "app",我会得到一个参数值。如果我使用 TabrisClient 访问该应用程序,则该值为空。

有没有办法在 TabrisClient 中也获取值?

更新:

服务器不直接从请求 URL 中提取查询字符串,而是从客户端收到的第一条 JSON 消息中提取查询字符串。 Web 客户端在第一个 UI 请求的 head 部分提供参数 queryString。示例:

{ "head": { "queryString": "foo=23&bar=42", "requestCounter": ... }, "operations": [ ... ] }

您必须在您的 Tabris 客户端中伪造此行为。我建议您针对 Tabris 提出问题以提供 API 来设置启动参数。

原回答:

如果您要在 tabris 客户端中对参数进行硬编码,您可以根据连接的客户端设置变量:

parameter = (RWT.getClient() instanceof WebClient)
          ? RWT.getRequest.getParameter("parametername")
          : "tabris-value";

顺便说一句,对请求参数的访问将在 RAP 3.0 中发生变化。 ClientService 将提供参数,而不是 RWT.getRequest().getParameter()。