Play2.0文档-面向JAVA开发者(1)
博客专区 > DavidBao 的博客 > 博客详情
Play2.0文档-面向JAVA开发者(1)
DavidBao 发表于2年前
Play2.0文档-面向JAVA开发者(1)
  • 发表于 2年前
  • 阅读 12
  • 收藏 0
  • 点赞 0
  • 评论 0

华为云·免费上云实践>>>   

大东哥已经翻译了面向scala开发者的部分http://my.oschina.net/dongming/blog?catalog=153394

我打算翻译一下java部分,如果错误请予以指正,谢谢!
Actions, Controllers and Results

Action 是什么?

一个play应用程序收到的大部分请求都会被Action处理。

一个action就是一个用来处理请求参数的基本java方法,并且它还会生成一个返回到客户端的result。

public static Result index() {
   return ok("Got request " + request() + "!");
 }


一个action 返回一个play.mvc.Result 值,这个值代表了发送到web客户端的HTTP应答。在这个例子中,ok 构造了一个200 OK 应答,这个应答包含了一个text/plain的应答体。

Controllers

一个controller只不过是一个继承自 play.mvc.Controller 包含了几个action方法的类。


最简单的定义一个action的语法是一个没有参数的静态方法,他返回一个 Result 值:

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


action方法也可以有参数:

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



这些参数将会被 Router 解析,并通过请求的URL来填充。参数值可以从URL路径或者URL查询字符串中提取。

Results

让我们从简单的results开始:一个带有状态码、HTTP头,以及需要返回发送到web客户端的body的HTTP result。

这些results 是由play.mvc.Result 定义的, play.mvc.Results 类提供了一些辅助方法来生成标准的HTTP results,就像前一部分用到的 ok 方法:

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


这有几个创建各种类型results的例子:

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 类中找到。

Redirects(重定向)也是简单的results
.

重定向浏览器到一个新的URL仅仅是另一种的简单result。然而,这些result类型是没有应答体的。

这有几个用来创建重定向results的辅助方法:
public static Result index() {   return redirect("/user/home"); }


这个默认值一般会使用 303 SEE_OTHER 应答类型,但是你也可以设定一个特定的状态码:

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

--------------------------以下做个小广告-------------------------
NoSQL系列技术扣扣群:
一群:23152359(满员)
二群:193713524(强烈推荐,即将突破400人)
三群:79377097(新建)
四群:191845335(新建)

本群汇聚了包括百度、创新工厂、IBM、阿里、淘宝、京东、盛大等诸多知名企业的高端技术人才,
以各种NoSQL技术为主的大型交流群,欢迎各种猴子占领本群。
共有 人打赏支持
粉丝 113
博文 264
码字总数 116640
×
DavidBao
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: