`
sky3380
  • 浏览: 5771 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Play2.0文档-面向JAVA开发者(1)

    博客分类:
  • play
阅读更多
大东哥已经翻译了面向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技术为主的大型交流群,欢迎各种猴子占领本群。
分享到:
评论

相关推荐

    Play 2.0 Documentation.pdf

    《Play 2.0 文档》是一份详尽的指南,专为希望利用 Play 框架构建现代 Web 应用程序的 Java 和 Scala 开发者设计。Play 2.0 是一个高生产力的框架,它整合了开发现代 Web 应用所需的各种组件和 API,基于轻量级、无...

    GGScript_2.0.zip

    综上所述,GGScript_2.0.zip 包含的 APK 文件是一个面向 Android 平台的脚本工具,它可能用于游戏开发、自动化任务或者其他需要定制脚本逻辑的场景。用户可以通过安装和使用这个应用来编写、运行和管理 GGScript ...

    spring2.0 hibernate 3.0 struts1.1 xfire1.2 整合

    这种集成方式在过去的项目中非常常见,但随着技术的发展,现在更多的开发者可能转向使用Spring Boot、Hibernate ORM(取代XFire的现代Web服务框架如Spring Web Services)和更新版本的Struts或替代品如Play ...

    SpringMVC文档.zip_spring mvc

    Spring MVC以其模块化、松耦合的设计,以及对依赖注入(DI)和面向切面编程(AOP)的支持,深受开发者喜爱。以下是一些从提供的文档标题中提炼出的关键知识点: 1. **基于Annotation的MVC(Spring 2.5)** - ...

    Scala语法简明教程

    - **面向对象+函数式编程**:Scala融合了面向对象编程和函数式编程的特性,支持类、对象和继承的同时也支持高阶函数、不可变性等函数式编程的核心概念。 - **分布式运行**:Scala设计之初就考虑到了并行和分布式...

    Java Based Software Project Management-开源

    5. **Java框架**:在项目管理中,开发者可能利用Spring Framework、Hibernate ORM、Struts或Play Framework等Java框架来简化开发,提高代码复用性,加速项目进度。 6. **敏捷开发**:在Java软件项目管理中,敏捷...

    2015-Framework:2015年框架

    7. **Groovy与Grails**: Groovy是一种面向Java平台的动态语言,而Grails是基于Groovy的Web应用框架。2015年,Grails 3.x版本发布,带来了许多改进,包括更接近Spring Boot的结构和更快的开发周期。 8. **Apache ...

    buingocduy.github.io

    基于以上信息,我们可以推测"buingocduy.github.io"可能是一个Java开发者或团队的个人网站项目,其中可能包含以下知识点: 1. **GitHub Pages**: GitHub提供的静态网页托管服务,允许用户将仓库中的HTML、CSS和...

    mobile-notification-api:行动通知API

    3. **Java后端开发**:在Java后端,开发者可能使用Spring Boot或Play Framework等框架来构建API服务,这些框架提供了处理HTTP请求、路由、数据访问和事务管理等功能,使得开发高效且易于维护。 4. **RESTful API...

    HololiveEN-GEN1-Watson-Amelia-Noises:Amelia Noises Android应用程序的GitHub存储库

    标题中的“HololiveEN-GEN1-Watson-Amelia-Noises”指的是一个与Hololive Entertainment相关的项目,这是日本一家知名的虚拟YouTuber事务所。"Watson Amelia"是Hololive旗下的一个虚拟角色,可能是一位以英文为主要...

    cds-reimbursement-claim-frontend

    这个项目的描述表明它是一个新存储库,并且其`README.md`文件尚处于初步阶段,意味着项目可能还在开发初期,文档可能不完整,但它是项目开发过程中不可或缺的一部分,通常包含项目简介、安装指南、使用方法等信息。...

    SpiritLevel-SL1

    8. **开源许可证**:作为一个开源项目,它应该包含某种形式的开源许可证,例如MIT、Apache 2.0或GPL,这些都会规定其他开发者如何使用和修改源代码。 9. **API集成**:如果应用有更复杂的需求,比如与其他服务集成...

    SpotifyStreamer:Android Nano度的Project 12

    2. **Java编程**:作为主要编程语言,Java的面向对象特性、类库使用、异常处理以及数据结构等知识将在项目中起到关键作用。 3. **网络通信**:应用需要与Spotify服务器进行交互,因此需要理解HTTP协议和JSON数据...

Global site tag (gtag.js) - Google Analytics