Play官方文档翻译1:Actions, Controllers and Results

play:http://www.playframework.com/documentation/2.3.x/JavaActions

下一页:http://my.oschina.net/qiangzigege/blog/271617

内容

什么是Action?
大多数play接收到的请求被一个action处理。
一个action是一个java方法,这个方法处理请求参数,产生一个结果发送给客户端。

public static Result index() {
    return ok("Got request " + request() + "!");
}
一个action返回一个 play.mvc.Result 类型的值,表示HTTP响应, 
在这个例子中,ok创建一个200OK的响应,包含text/plain类型的响应体。

Controllers
一个controller就是一个继承play.mvc.Controller的类,里面一般会包含多个方法。


package controllers;

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

public class Application extends Controller {

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

}

最简单的action方法就是静态方法,没有参数,返回一个Result类型的值。
当然,也可以有方法。
public static Result index(String name) {
    return ok("Hello " + name);
}
这些参数会被Router解析,填充以request URL里的值,参数的值可以从URL路径或者url的查询字符串中获取。

Results
一个HTTP的result有一个状态码,一系列http头和一个响应体。
这些results由play.mvc.Result定义,并且play.mvc.Results类提供很多helpers来产生标准HTTP结果,比如ok方法。

public static 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");
这些helpers都可以从play.mvc.Results类中找到。


Redirects 也是简单的Results.
重定向是另一种简单的result,尽管如此,这些result没有响应体。
有一些可用的helpers来产生重定向results.
public static Result index() {
    return redirect("/user/home");
}
默认使用303 SEE_OTHER响应类型,但是你可以特定一个状态码。

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

 

你可能感兴趣的:(play)