Play 2.0 中文资料 - Action, Controller 和 Result
2017-07-31 15:58
369 查看
Play 2.0 中文资料 - Action, Controller 和 Result
2012-10-07 — Yanbin什么是 Action?
多数的请求被 Play 应用接收到,并由
Action 进行处理.
一个
play.api.mvc.Action简单说来就是一个
(play.api.mvc.Request => play.api.mvc.Result)函数,它处理请求并产生一个 result 发送给客户端.
play.api.mvc.Result值, 代表着发送给 Web 客户端的
HTTP 响应. 上面的例子中
Ok构造了一个 200
OK 的响应,它包含了 text/plain 类型的响应体.
建造一个 Action
play.api.mvc.Action伴生对象提供有多个帮助方法用于构建 Action 值.
最简单的一个方法是以返回值为
Result的表达式块作为参数:
因此,还有另外一个 Action 建造器,它接收一个函数
Request => Result 作为参数:
implicit来标记
request参数,这样可在其他的
API 需要的时候隐式的使用它:
BodyParser作为参数:
Controller 是 action 的产生器
Controller总是一个用来产生 Action 值的单例对象.
最简单的用于定义一个 Action 产生器的案例就是一个无参并返回 Action 值的方法:
1. 如果定义的方法返回值不是 Unit 类型的话就必须要在方法实现之前加上等号
2. 如果方法实现只有一条语句,或者 Scala 能够推断出方法何时结束,则可以省略掉方法体外围的大括号,此处的 index 就是直接返回 Action 方法的值
3. 如果方法只有一个参数,则调用它时可以用花括号代替小括号包围参数,所以通常把 Action( request => ......) 写成了 Action{ request => ......}。这样写的好处就是它看起来像是一种内建控制结构。这里
request => ...... 是一个闭包,或称字面函数参数
4. 在 Action.scala 源文件中,Action 是一个单例对象:
简单的 Result
目前我们只讲述简单的 Result: 一个具有状态代码的 HTTP Result, 一系列 HTTP 头和要发送到 Web 客户端的响应体.
这些 Result 由
play.api.mvc.SimpleResult 定义:
OkResult:
下面是几个创建种种 Result 的例子:
play.api.mvc.Results特质和伴生对象中找到.
重定向也是简单的 Result
重定向浏览器到一个新的 URL 是另一类简单的 Result. 然而, 这类 Result 类型不会带上响应体.
下面是些创建重定向 Result 的几个帮助方法:
303 SEE_OTHER响应类型, 但是 你可以根据需要设置特别的状态码:
“TODO” 虚页面
你可以用一个定义为
TODO的空的
Action实现: 这个 Result 是一个标准的
‘Not implemented yet’ 结果页:
来自 隔叶黄莺 Unmi Blog
相关文章推荐
- Play framework Action、Controller和Result
- Play framework Action、Controller和Result
- Play framework Action、Controller和Result
- Play framework Action、Controller和Result
- Play framework Action、Controller和Result
- Play framework Action、Controller和Result
- Play framework Action、Controller和Result
- Play framework Action、Controller和Result
- Play framework Action、Controller和Result
- Play framework Action、Controller和Result
- Play 2.0 中文资料--翻译附注解(持续更新中)
- Play framework Action、Controller和Result
- Play framework Action、Controller和Result
- Play 2.0 中文资料 - Play JSON 库
- Play framework Action、Controller和Result
- Play framework Action、Controller和Result
- Play framework Action、Controller和Result
- Play framework Action、Controller和Result
- Play framework Action、Controller和Result
- Play framework Action、Controller和Result