文档

§操作、控制器和结果

§什么是操作?

Play 应用程序接收的大多数请求都由操作处理。

操作本质上是一个 Java 方法,它处理请求参数并生成要发送给客户端的结果。

public Result index(Http.Request request) {
  return ok("Got request " + request + "!");
}

操作返回一个play.mvc.Result值,表示要发送到 Web 客户端的 HTTP 响应。在本例中,ok构造一个包含text/plain响应主体的200 OK响应。有关 HTTP 响应的更多示例,请参阅play.mvc.Results方法

§控制器

控制器不过是一个扩展play.mvc.Controller的类,它对多个操作方法进行分组。

package controllers;

import play.*;
import play.mvc.*;

public class Application extends Controller {

  public Result index() {
    return ok("It works!");
  }
}

定义操作的最简单语法是使用一个没有参数且返回Result值的方法,如上所示。

操作方法也可以有参数

public Result index(String name) {
  return ok("Hello " + name);
}

这些参数将由Router解析,并将使用来自请求 URL 的值填充。参数值可以从 URL 路径或 URL 查询字符串中提取。

§结果

让我们从简单结果开始:一个带有状态代码、一组 HTTP 标头和要发送到 Web 客户端的主体的 HTTP 结果。

这些结果由play.mvc.Result定义,play.mvc.Results类提供了一些帮助程序来生成标准 HTTP 结果,例如我们在上一节中使用的ok方法

public Result index() {
  return ok("Hello world!");
}

以下是一些创建各种结果的示例

Result ok = ok("Hello world!");
Result notFound = notFound();
Result pageNotFound = notFound("<h1>Page not found</h1>").as("text/html");
Result badRequest = badRequest(views.html.form.render(formWithErrors));
Result oops = internalServerError("Oops");
Result anyStatus = status(488, "Strange response type");

所有这些帮助程序都可以在play.mvc.Results类中找到。

§重定向也是简单的结果

将浏览器重定向到新 URL 只是另一种简单的结果。但是,这些结果类型没有响应主体。

有多种助手可用于创建重定向结果

public Result index() {
  return redirect("/user/home");
}

默认情况下使用 303 SEE_OTHER 响应类型,但您也可以指定更具体的状态代码

public Result index() {
  return temporaryRedirect("/user/home");
}

下一步:HTTP 路由


发现此文档中的错误?此页面的源代码可以在 这里 找到。阅读完 文档指南 后,请随时贡献拉取请求。有疑问或建议要分享?前往 我们的社区论坛 与社区进行对话。