`
zsjg13
  • 浏览: 144944 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

Hello Play!

    博客分类:
  • play
阅读更多

    Play包含了它自己的服务器和构建环境。

 

1、获取Play、搭建Play环境

    从http://playframework.org下载最新版的Play 2发行文件,抽取ZIP文件。Play的唯一要求就是要安装了JDK,1.6或更高版本。将此目录加到你的PATH环境变量中去。

    打开命令行,输入play。

 

2、创建并运行一个空应用

    一个Play应用就是一个目录,它里面包含了一个特定的结构,Play用此结构来找到配置、代码以及任何其他它需要的资源。此结构是用play new命令来完成的。

    在命令行中输入 play new hello。按提示去做即可。

    然后是运行此项目:

$ cd hello

$ play run

 

3、Play应用结构

    play new 命令创建了一个默认的应用,带有基本的结构,包括一个最小的HTTP路由配置文件、一个Controller类用于处理HTTP请求,一个view模板、jQuery,以及一个默认的CSS样式表。

 

.gitignore
app/controllers/Application.scala
app/views/index.scala.html
app/views/main.scala.html
conf/application.conf
conf/routes
project/build.properties
project/Build.scala

project/plugins.sbt
public/images/favicon.png
public/javascripts/jquery-1.7.1.min.js
public/stylesheets/main.css
test/ApplicationSpec.scala
test/IntegrationSpec.scala

 

此目录结构对所有的Play应用都很常见。其中的顶级目录将文件进行了如下分组:

■ app—Application source code
■ conf—Configuration files and data
■ project—Project build scripts
■ public—Publicly accessible static files
■ test—Automated tests

【用~run来立刻编译修改过的文件

    如果你用run命令启动了你的应用,Play将会在它接收到下一个HTTP请求时编译你的修改。要尽快开始编译,就是当文件被改了后,你应当改用 ~run 命令。】

 

4、访问应用

    访问默认的欢迎页:http://localhost:9000/。它就是某种hello world例子——它展示了一个运行的应用,输出了一些东西,让你看清楚各种东西都是如何组合在一起。它就是一个最少量的代码实际地像你展示了此web框架。

 

5、加一个controller类

    编辑app/controllers/Application.scala,将它的index方法换成下面的:

def index = Action {
Ok("Hello world")
}

    这个定义了一个action方法,它生成了一个HTTP OK响应带文本内容。现在刷新一下,你会看到输出了Hello world。

    为什么这是行的呢,就是因为在conf/routes这个HTTP路由配置文件中有一行将GET / HTTP请求映射到了一个方法调用:

GET / controllers.Application.index()

 

6、添加一个编译错误

    如果你犯错了,那输出更有趣。在action方法中,去掉Hello world后的引号,保存文件,重新加载页面,你会看到一个友好的编译错误。

    修复此错误,保存文件,再加载。Play动态重新加载修改,因此你不必每次做了修改就手动构建。

 

7、加一个HTTP请求参数

    这仍然不是一个合适的web应用示例,因为我们没有使用HTTP或HTML。现在我们往这个controller中加一个新的action方法,并带一个字符串参数:

def hello(name: String) = Action {

    Ok("Hello" + name)

}

    修改conf/routes路由配置文件,将一个不同的URL映射到你的新方法上,带一个HTTP请求参数叫n:

GET /hello controllers.Application.hello(n: String)

    在浏览器中访问:http://localhost:9000/hello?n=Play!

    注意查询字符串参数 n 匹配在routes文件中声明的参数名。

 

8、添加一个HTML页面模板

    最后,为了完成这个首个示例,我们需要一个HTML模板,因为你通常是用web应用框架来生成web页面,而不是纯文本文档。那么创建一个文件 app/views/hello.scala.html,内容如下:

@(name: String)

<!doctype html>

<html>

    <head>

        <meta charset="UTF-8">

        <title>Hello</title>

    </head>

    <body>

        <h1>Hello <em>@name</em></h1>

    <body>

</html>

    这是一个Scala模板。第一行定义了参数列表,此例中也就是name这个参数——并且该HTML文档中包含了一个HTML em 标签,它的内容是一个Scala表达式——就是name参数的值。一个模板就是一个Scala函数定义——Play会将其转换成普通的Scala代码并编译。3.5.4节(我指的是Play for Scala这本书)会解释模板是如何成为Scala函数的。

    要使用此模板,你需要在hello action方法中渲染它来生成HTML输出。一旦Play将此模板转换成一个Scala对象叫views.html.hello,这意味着调用了它的apply方法。你之后用此渲染的模板作为一个字符串值来返回一个Ok结果:

def hello(name: String) = Action {
Ok(views.html.hello(name))
}

分享到:
评论

相关推荐

    Hello Swift! .pdf

    It’s fun to play games and explore new things on your iPhone. How amazing would it be to create your own apps? With a little practice, you can! Apple’s Swift language, along with special coding ...

    Unit 1 Hello! Part A 课件 1.ppt

    接下来是“Let's play!”环节,这个部分进一步强化了问候和自我介绍的实践应用。如:“Hi! I'm Rose.”(嗨!我是萝丝。),“Hello! I'm Mary.”(你好!我是玛丽。)等。这一互动环节鼓励孩子们积极参与,提高他们...

    play2 中文文档

    在Play2框架中,Actions、Controllers和Results是构建Web应用程序的核心概念。让我们深入探讨这些概念以及如何在实际应用中使用它们。 首先,Action是处理HTTP请求的基本单元。它是一个接收HttpRequest并返回...

    Unit 1 Hello! Part B 习题 1(1).doc

    "Let’s play!" 是提出邀请,合适的回答是表示同意,如选项C "OK!"。选项A "Bye!" 和选项B "Goodbye!" 都是告别语,不符合语境。 二、书写练习部分则着重于基础词汇和简单句子的书写。这部分要求学生在四线格中正确...

    三年级上册Unit 1 Hello!Part B第一课时课课练及答案【含听力】精选.doc

    这篇文档是针对小学三年级上册英语学习的内容,主要涵盖了Unit 1 Part B的第一课时,包括"Let's talk"和"Let’s play"两个部分,旨在通过课后练习来帮助学生巩固和提升英语听说能力。下面将详细解析其中涉及的知识点...

    Unit 1 Hello! Part B 课件 2.ppt

    2. "Let's play! - Which one is missing?" 是一个游戏环节,旨在通过找出缺失的文具单词来增强学生的记忆力和词汇识别能力。这种活动可以帮助学生在轻松愉快的环境中学习新词汇。 3. "Let's do!" 部分包含了一些...

    play框架+一个helloworld例子

    此资源是整个play框架外加一个helloworld小例子,下载解压到文件夹中可以直接进行play框架开发。

    Hello!教学课件(Period2).ppt

    8. **Let’s play**: 课件包含多个游戏化的互动环节,如"I have a/an…" 和 "Let’s chant",旨在使学习过程更有趣,提升学生参与度。 9. **Homework**: 家庭作业是课堂学习的延续,确保学生在课后也能巩固所学...

    如何部署play1.2.x

    Xmx512m -javaagent:/fcg/mo/framework/play-1.2.1/framework/play-1.2.1.jar -Dprecompiled=true -server -classpath "/fcg/mo/projects/hello/lib/*:/fcg/mo/projects/hello/conf:/fcg/mo/framework/play-...

    play测试案例

    标签"play!"表明这是与Play框架相关的内容。Play框架支持使用Anorm或者Slick等库进行数据库操作,可以方便地集成其他技术,如模板引擎(如Twirl)、JSON解析(如play-json)和ORM框架。 总结来说,这个压缩包中的...

    Android Hello World工程项目

    随着对Android SDK和Java或Kotlin语言的深入理解,开发者可以创建功能丰富的应用程序,利用谷歌Play商店分发到全球数十亿的Android设备上。这个简单的“Hello, World!”项目是通向Android开发世界的敲门砖,也是每个...

    剑桥国际少儿英语KB3听力文本.doc

    Unit 3 Play time! * 本单元的主要内容是玩耍时间,学习玩耍相关的单词和句子。 * 学习玩耍相关的单词:kites、lorries、robots。 * 学习玩耍相关的句子:Can we look at them, Dad?、Where are they? * 学习感叹语...

    play初学者学习专用

    通常,手册会介绍如何设置开发环境,如安装IDE和必要的依赖,以及如何创建第一个"Hello, World!"应用。它还会讲解框架的基本结构,包括路由配置、控制器、视图和模型的创建。通过阅读此手册,你可以快速上手Play框架...

    ios helloworld

    在iOS开发领域,"Hello, World!"程序是一个经典的起点,它标志着开发者首次成功地在平台上构建和运行应用程序。本文将深入探讨iOS应用的基础知识,包括Xcode IDE的使用、Swift编程语言的入门以及如何创建并运行一个...

    C语言中的头文件使用.doc

    printf("Hello world!"); } ``` 可以看到,这个程序非常简单,没有使用头文件。那么,为什么我们需要使用头文件呢?让我们把这个程序变得稍微复杂些,例如: ```c printStr(){ printf("Hello world!"); } main(){ ...

    play framework框架教程

    #### 七、Play!1.1框架中的Scala模块 Play框架支持使用Scala语言进行开发,这为开发者提供了更多的灵活性和强大的语言特性。Scala模块允许开发者使用Scala编写控制器和模型,同时仍然能够与Java代码无缝协作。 **...

    如何部署play

    假设您的Play安装目录位于`D:\framework\play1.2.x`,而项目“hello”位于`D:\work\hello`。 - **步骤一:打开命令行** 在Windows环境下,可以通过打开命令提示符(CMD)来执行操作。命令行界面显示如下: ``` ...

    play框架应用实例

    **Play框架应用实例详解** Play框架,作为一个开源的、基于Java和Scala的Web应用程序框架,以其独特的异步处理模式和简洁的API设计赢得了开发者们的喜爱。在这个“Play框架应用实例”中,我们将深入探讨Play 1.2...

    helloworld.zip

    7. **发布与分发**:完成开发后,应用需要遵循Android Automotive的特定发布指南,通过Google Play Store或其他分发渠道提供给用户。 总结来说,"helloworld.zip"文件可能包含了一个简单的Android Automotive应用...

    windows驱动开发helloworld

    编译完成后,你需要将驱动通过PnP(Plug and Play)方式安装到系统中,或者使用像DriverVerifier这样的工具手动加载。然后,通过WinDbg等调试工具查看输出,确认"Hello, World!"已经正确打印。 在深入驱动开发的...

Global site tag (gtag.js) - Google Analytics