2012年9月6日

Play Framework 實作教學 (1) - 架構簡介 ( Play Framework tutorial )

從這篇開始 Play Framework Step by Step 系列,雖說是教學但其實也只是個人實作分享,
之前有介紹 (1.) 安裝 Play Framework、(2.) 建立專案教學,可先參考後再開始此系列文章。



在教學內容開始前必須先提出一個個小小的發現,在使用的版本為 2.02 實作中發現,常常在專案啟動或 F5 刷新頁面時會出現 Exception,錯誤訊息大概是 : 

play.core.ActionInvoker$anonfun$receive$1$anon$1:                                                            
Execution exception [[ParseException: Unparseable date: "??, 20 ??? 2012 18:32:16 UTC"]]

此問題經 google 相關資料後發現應該為 2.02 版本的 Bug,2.03 版本後已經遇不到該 Exception ,所以我們此系列範例都以 2.03 為基礎。

建立好專案後,以 Eclipse 開啟專案後可以看整個專案資源的配置 ( 部分是我手動增加 ),


由於 Play Framework 是基於 MVC 的建構格局 ( 概念可以參考官方網站內容 ),因此會自動幫你建立 Controllers 與 Views 的 package,
Controllers : 為扮演接收 Request 與回應 Response 的中樞角色。
Views  : 簡單的意思即 Controllers 回應 Response 時呈現的畫面。
連結 Controllers 與 Views 的關係的設定在於 Conf 資料夾底下的 routes 設定檔,


routes 設定檔裡面可以看到 :
 GET     /index                      controllers.Application.index()       
以上解讀為 Request 導向 http://localhost:9000/index 時,會執行 /controllers/Application.java 的 index(),當然 Request 有分 GET 與 POST 故也可以在這邊設定。
我們再細看 index() 裡面到底做了什麼 :


從程式碼可以知道 index() 回傳了一個 Result 型態的物件,
return ok(index.render("Your new application is ready."));         
這段解讀為 index.render() 會輸出畫面為 Views 的 index.scala.html ,
因此當改為  return ok(test.render()); ,這時我們 views 底下必須要有一個對應的 test.scala.html。
另外 index.render("parameter") 的參數值將會傳遞到 index.scala.html 中 String 型態的變數 message。


上述內容為我們在開發之前,對於 controllers、views 必須有的簡單概念。另外常用的 CSS、Javascript、Image 檔案我們都分別放在 Public 資料夾底下,當然還可以看到我有增加了一個 model 的 package,這部分會留在後面的文章更詳細的介紹,以上就是本篇對於 Play Framework 開發時對於架構、資源的快速簡介。其他 Play Framework 相關教學可以參考本篇整理



熱門文章