Play 2.0的完整演示過(guò)程記錄
介紹 Play 框架最好的方法就是給一個(gè)完整的演示步驟讓你看看 Play 到底有多簡(jiǎn)單。本演示使用最新的 Play 2.0 Beta 版。
本文是在 Linux 環(huán)境下進(jìn)行,如果你使用的 Windows,那會(huì)有一些小區(qū)別,例如路徑和環(huán)境變量的設(shè)置等等,請(qǐng)自行解決。
廢話(huà)少說(shuō),下面我們開(kāi)始:
1. 下載并安裝
- $ wget http://download.playframework.org/releases/play-2.0-beta.zip
- $ unzip -q play-2.0-beta.zip
- $ export PATH=$PATH:`pwd`/play-2.0-beta
2. 創(chuàng)建一個(gè)新應(yīng)用
- $ play new tasks
- What is the application name?
- > tasks
- Which template do you want to use for this new application?
- 1 - Create a simple Scala application
- 2 - Create a simple Java application
- 3 - Create an empty project
- > 2
來(lái)看看都生成了什么文件?
- $ find tasks -type f
- tasks/.gitignore
- tasks/app/controllers/Application.java
- tasks/app/views/index.scala.html
- tasks/app/views/main.scala.html
- tasks/conf/application.conf
- tasks/conf/routes
- tasks/project/build.properties
- tasks/project/Build.scala
- tasks/project/plugins.sbt
- tasks/public/images/favicon.png
- tasks/public/javascripts/jquery-1.6.4.min.js
- tasks/public/stylesheets/main.css
3. 運(yùn)行程序
- $ cd tasks
- $ play run
然后你就可以打開(kāi)瀏覽器訪(fǎng)問(wèn) http://localhost:9000 , 你看到什么了嗎?
接下來(lái)我們加點(diǎn)動(dòng)態(tài)的數(shù)據(jù)
編輯 app/views/index.scala.html 文件,內(nèi)容如下:
- @(items: String)
- @main("Tasks") {
- <h1>@item</h1>
- }
編輯 app/controllers/Application.java 并修改 index() 方法,代碼如下(我們故意少輸入一個(gè)分號(hào))
- return ok(index.render("Things"))
刷新一下 http://localhost:9000 頁(yè)面就會(huì)報(bào)一個(gè)模板編譯錯(cuò)誤:not found: value item.
該編譯錯(cuò)誤表明必須聲明模板參數(shù)
在控制臺(tái)中,輸入 Ctrl D 以停止 Play 程序,然后重新啟動(dòng) Play 控制并編譯程序:
- $ play
- [tasks] $ compile
在沒(méi)有運(yùn)行應(yīng)用的情況下你也可以發(fā)現(xiàn)這個(gè)模板編譯的錯(cuò)誤
再次啟動(dòng)應(yīng)用:
- [tasks] $ run
在 app/views/index.scala.html 修復(fù)該錯(cuò)誤
刷新頁(yè)面,將顯示一個(gè) Java 的編譯錯(cuò)誤:';' expected
在 app/controllers/Application.java 中將那個(gè)缺少的分號(hào)加上。
再次刷新頁(yè)面,將顯示 Things 標(biāo)題
在 public/stylesheets/main.css 中,我們添加一些 css 代碼:
- body { font-family:"Helvetica Neue"; padding:2em; background: #B2EB5A url("/assets/images/play20header.png") no-repeat top center ; }
- body:before { content:'Play 2.0 task list demo'; color:rgba(255,255,255,0.7); font-size:150%; text-transform:uppercase; letter-spacing:0.4em; }
- ul { padding:0; list-style:none; }
- li, form { width:30em; background:white; padding:1em; border:1px solid #ccc; border-radius:0.5em; margin:1em 0; position:relative; min-height:1.2em; }
- li a { text-decoration:none; color:transparent; position:absolute; top:1em; right:1em; }
- li a:after { content:'❎'; color:#aaa; font-size:120%; font-weight:bold; }
- form * { font-size:120%; }
- input { width:16em; }
- button { cursor:pointer; color: white; background-color: #3D6F04; background-image: -webkit-linear-gradient(top, #5AA706, #3D6F04); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); border: 1px solid #CCC; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); border-radius:4px; }
- p.error { margin:0; color:#c00; }
在 app/controllers/Application.java 中,我們使用一個(gè)字符串 items 方法參數(shù)來(lái)替換 Things 字符串
在 conf/routes 中,我們替換第一條路由信息(使用小寫(xiě)的 string)
- GET / controllers.Application.index(i: string)
打開(kāi) http://localhost:9000/?items=Tasks 將顯示路由編譯錯(cuò)誤信息:
The routes file is compiled, and HTTP parameters must be declared. HTTP parameter names do not have to match the action method names.
在 conf/routes 中糾正這個(gè)錯(cuò)誤:
- GET / controllers.Application.index(i: String)
重新刷新頁(yè)面
撤銷(xiāo)剛剛在 app/controllers/Application.java 中的更改,刪除 index 方法參數(shù):
- public static Result index(final String items) {
- return ok(index.render(items));
- }
撤銷(xiāo)在 conf/routes 中的更改,刪除參數(shù):
- GET / controllers.Application.index()
下面還有在 IDEA 環(huán)境中的使用以及表單處理和驗(yàn)證等,詳情請(qǐng)看原文。
原文連接:http://www.oschina.net/question/12_33439
【編輯推薦】