2

我是 GWT 和 PHP 的新手,在阅读了一些教程之后,我不清楚如何在 GWT 前端和 PHP 后端之间有效地交换数据。我成功地遵循了建议使用 RequestBuilder 类从 PHP 获取数据的 Google 教程。但是当我需要保存在 GWT 中完成的工作时,如何高效地将数据传递给 PHP?我不清楚如何使用 RequestBuilder 来完成这项任务。我现在找到的解决方案是

RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, URL.encode(url));
    builder.setHeader("Content-Type", "application/json");
        try {
              Request request = builder.sendRequest("{\"done\":false,\"description\":\"Some text\",\"priority\":0}", new RequestCallback() {...

在 PHP 方面

$arr = json_decode(file_get_contents("php://input"),true);
$done = (int)$arr['done'];
$description = $arr['description'];
$priority = $arr['priority'];
mysql_query("INSERT INTO Tasks (done, description, priority)
    VALUES ($done, '$description', $priority)");

这是最好的方法吗?有人在网上找到了一个可行的例子吗?欢迎任何意见...

4

1 回答 1

0

我认为,在与非 Java 服务器交互时使用 JSON 很好。您可以使用 JSON 模块以更安全的方式在客户端构建 JSON 字符串:

在您的 .gwt.xml 文件中添加

<inherits name='com.google.gwt.json.JSON'/>

然后你可以构造你的示例字符串,如

final JSONObject jsonObject = new JSONObject();

jsonObject.put("done", JSONBoolean.getInstance(false));
jsonObject.put("description", new JSONString("Some text"));
jsonObject.put("priority", new JSONNumber(0));

final String jsonString = jsonObject.toString();
于 2012-05-22T06:41:39.253 回答