折腾了2个晚上,终于把Play2框架编译成功搭建起来,跟着官网的文档体验一下。
Action
Action是用于请求的地方,最简单的Action就是返回一些文本或页面的Result,如
1 | Action { |
其中OK是一个Status
对象,它接收一个值为200的Int
类型代表响应头的状态码,同时Status
类有一个apply
方法,它有一个参数,代表响应的内容。
Action也接收一个Request => Result
类型的参数, 可以对请求信息进行处理,如
1 | def add = Action { request => |
request参数可以定义成隐式参数的形式
1 | def add = Action { implicit request => |
Action还可以有一个BodyParser
参数,用于解析请求body的内容,如
1 | def add = Action(parse.json) { implicit request => |
表示请求的body可以通过json来解析,因此body的格式必须为text/json
或者application/json
的。
Controller
Controller是一个用来定义Action
的一个单例对象。最简单的Controller
的方法是没有参数的
1 | def add = Action { request => |
方法也可以有参数,这些参数可以被Action
中的代码块使用,如
1 | def add(name : String) = Action { request => |
Result
Result
是Action
的返回类型,它可以设置响应头和响应体,如:
1 | def add = Action { |
也可以设置各种响应码,如404,500等,一些常用的如下
1 | /** Generates a ‘403 FORBIDDEN’ result. */ |
Result
也可以返回一个重定向的结果,如
1 | def redirect = Action { request => |
重定向时如果不指定第2个参数,则默认响应头为val SEE_OTHER = 303
Action
也支持一个默认的TODO
页面,如
1 | def index(name:String) = TODO |