Play 2.0的完整演示過程記錄
介紹 Play 框架最好的方法就是給一個完整的演示步驟讓你看看 Play 到底有多簡單。本演示使用最新的 Play 2.0 Beta 版。
本文是在 Linux 環(huán)境下進(jìn)行,如果你使用的 Windows,那會有一些小區(qū)別,例如路徑和環(huán)境變量的設(shè)置等等,請自行解決。
廢話少說,下面我們開始:
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)建一個新應(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
來看看都生成了什么文件?
- $ 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
然后你就可以打開瀏覽器訪問 http://localhost:9000 , 你看到什么了嗎?
接下來我們加點(diǎn)動態(tài)的數(shù)據(jù)
編輯 app/views/index.scala.html 文件,內(nèi)容如下:
- @(items: String)
- @main("Tasks") {
- <h1>@item</h1>
- }
編輯 app/controllers/Application.java 并修改 index() 方法,代碼如下(我們故意少輸入一個分號)
- return ok(index.render("Things"))
刷新一下 http://localhost:9000 頁面就會報一個模板編譯錯誤:not found: value item.
該編譯錯誤表明必須聲明模板參數(shù)
在控制臺中,輸入 Ctrl D 以停止 Play 程序,然后重新啟動 Play 控制并編譯程序:
- $ play
- [tasks] $ compile
在沒有運(yùn)行應(yīng)用的情況下你也可以發(fā)現(xiàn)這個模板編譯的錯誤
再次啟動應(yīng)用:
- [tasks] $ run
在 app/views/index.scala.html 修復(fù)該錯誤
刷新頁面,將顯示一個 Java 的編譯錯誤:';' expected
在 app/controllers/Application.java 中將那個缺少的分號加上。
再次刷新頁面,將顯示 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 中,我們使用一個字符串 items 方法參數(shù)來替換 Things 字符串
在 conf/routes 中,我們替換第一條路由信息(使用小寫的 string)
- GET / controllers.Application.index(i: string)
打開 http://localhost:9000/?items=Tasks 將顯示路由編譯錯誤信息:
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 中糾正這個錯誤:
- GET / controllers.Application.index(i: String)
重新刷新頁面
撤銷剛剛在 app/controllers/Application.java 中的更改,刪除 index 方法參數(shù):
- public static Result index(final String items) {
- return ok(index.render(items));
- }
撤銷在 conf/routes 中的更改,刪除參數(shù):
- GET / controllers.Application.index()
下面還有在 IDEA 環(huán)境中的使用以及表單處理和驗(yàn)證等,詳情請看原文。
原文連接:http://www.oschina.net/question/12_33439
【編輯推薦】