§操作、控制器和结果
§什么是操作?
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 路由
发现此文档中的错误?此页面的源代码可以在 这里 找到。阅读完 文档指南 后,请随时贡献拉取请求。有疑问或建议要分享?前往 我们的社区论坛 与社区进行对话。