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))
}
相关推荐
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 ...
此资源是整个play框架外加一个helloworld小例子,下载解压到文件夹中可以直接进行play框架开发。
带有 Play 框架的 Hello World 这是 Play Framework 2.3.x 版的示例“Hello World”应用程序。 它是从转换而来的。 相关代码 使用activator new hello-world play-java创建应用程序后,唯一需要更改的内容在这些...
这个就是自己写的play的一个小demo,hello的module中的Controller被我删了,写一下很简单。 不过记得需要搭环境先。
Carplay导航HelloWorld项目 随本博客文章一起:设置要运行此项目,需要XCode 10 beta 4或更高版本。描述AppDelegate.swift是发生:mage:的地方! (不要用自己的代码在AppDelegate中完成全部操作 :face_without_...
hello-play-java 游戏框架
Create a file called index.html inside BrowserAssets and put this in it: <h1>Hello World! Set the URL for your browser to localGame://index.html Hit play. Congratulations! You now have a browser in ...
play-scala-hello-world-tutorial:在Scala中播放的Hello World教程
/home/ambantis/Documents/dev/play/play4jug/hello2akka/project [info] Set current project to hello2akka (in build file:/home/ambantis/Documents/dev/play/play4jug/hello2akka/) > compile 基于线程的并发 ...
play-akka-hello-world 演示 Akka actor 用法的简单项目。
是一个高效的Go语言Web开发框架, 模仿 Play! Framework 而来, 我个人认为Revel是目前Go语言中比较不错的一个Web开发框架, 虽然它还有很多待完善的地方但还是很值得学习和借鉴滴, 我在这里记录一下偶的对它滴研究过程...
How to Play Reversi x Source Code x The bool() Function x The random.shuffle() Function x Tips for Inventing Your Own Games x Chapter 11 - AI Simulation x "Computer vs. Computer" Games x ...
play::application { ' helloworld ' : source => ' http://10.0.0.1/binaryrepo/helloworld.zip ' , port => ' 9000 ' , } 骇客 请根据需要向该模块发送更新。 一些突出的事情: spec 更好的文档
Its now yours to play around with 在本地计算机上使用git。这样做可以将此仓库的分叉副本下载到您的计算机上 git clone https://github.com/yourGitHubUsername/HELLO-WORLD.git 切换到克隆的
Websockets 播放演示目标 - 使用网络套接字服务器应该在 Java Play 框架中在 Python 中制作一个外部脚本,它想通过 websockets 与客户端通信在 AngularJs 中制作前端任务让 Play websockets Hello World 与外部应用...
你好世界具有基本设置和打算用作参考的任务的ansible剧本的集合。 提供以下剧本:怎么跑确保已安装ansible (如果未运行):(对于macOS),您可以按照其他平台的安装指南进行操作。 brew install ansible更新以添加...
图书馆hello_media / www / js / myaudio.js myAudio.play(“路径/到/声音/文件”,a_callback_called_when_finished); myAudio.stop();按钮样本hello_media / www / js / index.js app.audioButton();设定值...
介绍 一个为 play-clj 游戏轻松添加网络支持的库。...使用lein new play-clj hello-world创建一个新项目 修改desktop/project.clj以使用此依赖项: [play-clj.net "0.1.2"] 将desktop/src-common/
8种Java Web框架安装手记,分别是Grails,GWT,JSF,Play,Spring,Struts,Vaadin,Wacket。全部是截止2013-12-19最新的框架版本,文档最后有链接可以下载所有相关资料和jar包以及示例程序,任何问题可以联系...
send ( 'Hello World!' ) ) ;调用index.html路由,指定了/public/ , // ルーティングの設定app . get ( "/" , ( req , res ) => { res . sendFile ( ` ${ __dirname } /public/index.html` ) ;} ) ; 使用...