PLAY2.0框架快速入門

前言html

  目前,Ruby on Rails及Grails等動態腳本語言正發展得如火如荼,而在以Java爲首的開源最大陣營中,也出現了各類框架。其中最著名的就是Play框架(http://www.playframework.org/download)。java

  Play 框架是一個完整的 Web 應用開發框架,覆蓋了 Web 應用開發的各個方面。它借鑑了流行的 Ruby on Rails 和 Grails 等框架,又有本身獨有的優點。具體表如今如下幾個方面:其一,經過 Play 框架提供的命令行工具,能夠快速建立Java Web 應用。其二,它擁有Java 代碼動態編譯機制,在修改代碼以後,不須要重啓服務器就能夠直接看到修改以後的結果。其三,它還使用 JPA 規範來完成領域對象的持久化,能夠很方便的使用不一樣的關係數據庫做爲後臺存儲。其四,它使用 Groovy 做爲視圖層模板使用的表達式語言。模板之間的繼承機制避免了重複的代碼。總的來講,Play 框架很是適合快速建立Web 應用開發。本文將爲有必定Java Web框架基礎的讀者,來重點介紹如何使用play框架來編制一個最簡單的信息增刪改查應用。正則表達式

  一:安裝Play框架sql

  安裝play框架前,只須要使用JDK 1.6以上的版本便可,將官網上的play框架下載後解壓到某個指定目錄下(假設爲E:\paly-2.0),
    配置系統環境變量:Path中增長 E:\paly-2.0
    使用的是eclipse開發工具便可數據庫

  二:開始使用PLAY框架瀏覽器

  PLAY框架爲能讓用戶快速開始搭建play系統的原型。下面是使用play中建立工程的步驟:
    1.Win+R,輸入cmd,打開CMD控制檯
    2.切換到要創建工程的目錄下,輸入play new PlayTest開始建立PlayTest工程
    服務器

 


    3.出現詢問工程名字,本例輸入PlayTest  (自定義),回車繼續,出現選擇工程類型選擇,這裏選擇2——java 工程(之後能夠修改),回車,工程創建完成。網絡

 


 (play new Pal,其中new表示新建應用,new後的名稱則爲應用的名稱。)架構


  三:配置應用 將框架工程導入eclipseapp

  咱們爲了要在eclipse中方便咱們的編碼,因此須要把play剛爲咱們創建好的框架工程導入到咱們的eclipse中去,因此咱們按以下步驟去作:

  1 使用CTRL-C,先把咱們正在運行的應用中止下來。

  2 切換到剛創建的工程(PlayTest)目錄下,輸入play eclipsify,表示要生成能導入eclipse的框架工程,回車等待程序運行完畢。


     

        3.啓動eclipse ,而後使用導入工程的方法,把PlayTest工程導入。
        4. Play分爲開發模式和生產模式兩種,而切換的配置在工程下conf/application.conf中: 

         Application.mode=dev 生產模式改成:prod 

    主要區別在於開發模式中您無需重啓server,每次請求都會查看是否有文件發生改變,改變即編譯,這對於傳統Java EE開發人員無疑是至關敏捷的。而這種方式一樣會致使性能降低,因此生產模式中就不會這樣了,而是採用預編譯機制。 

    四:啓動Play,運行該工程

        打開CMD控制檯,用cd命令切換到該工程目錄下,輸入paly run 等待服務啓動,而後在瀏覽器中輸入http://localhost:9000/

        便可訪問剛剛新建的工程,默認首頁爲play的歡迎頁面。

------------------------------------------------------------------------------------------------------------------------

       4.在這個例子中,用的只是HSQL,因此打開conf/application.conf文件,將下面的db=mem 語句前的註釋符號去掉,表示咱們將使用hsql。

  5.一樣,在conf/application.conf文件中,增長以下這行,表示咱們將使用play框架自帶的CRUD功能:
module.crud=${play.path}/modules/crud

  6.在conf/routes文件中,增長以下這行:
*/admin module:crud

  注意,在play框架中,routes是路由控制器,這行表示,將全部的CRUD操做都是隻有經過 */admin訪問的請求,才能實現play自帶的CRUD功能。

  7.在進行上述修改後,咱們再到命令行方式下,運行play eclipse,而後再到ECLIPSE下按F5刷新一下

  8.若是此時再使用play run,運行會發現暫時尚未更新,由於咱們要進行數據層的配置。

  五:建立員工實體對象和控制層

  Play框架徹底遵照MVC分層架構標準,所以咱們按照MVC的分層來設計咱們的引用。咱們先建立員工實體對象和其控制層。

  首先,在eclipse的corporations工程中,在app/models目錄下,新建Employee類,代碼以下: 

    Package models;
  import java.util.Date;
  import javax.persistence.*;
  import play.db.jpa.Model;
  @Entity
  public class Employee extends Model {
  public String fullName;
  public Integer salary;
  public Date dateOfHire;


  在Play框架中,默認使用的是jpa註解標準,使用@Entity註解,說明該類是屬於實體類,這裏都是繼承了play本身的模型層基類Model,這裏因爲是示例,只是列出了三個對象的屬性。

  接下來,在app/controllers中,建立員工類的控制層文件,代碼以下 

   package controllers;
  public class Employees extends CRUD{ // an empty class
   }


  這裏看到,控制層文件的命名是Employees,使用的是PLAY框架優先約定的命名規則:實體類的複數形式。而且這裏繼承了Play中自帶的CRUD基類的功能,這樣,就能夠在咱們的應用中輕易使用到PLAY自帶的CRUD功能了。

  如今咱們立刻來運行下應用,依然輸入play run,再在瀏覽器中輸入:

  http://localhost:9000/admin


  這個時候,點Add按鈕,就能夠增長員工了。

  六:建立部門實體類和部門控制層

  接下來,咱們繼續建立部門實體類和部門控制層的文件。一樣,在app/models目錄下,新創建Department類,以下:  

  package models;  import javax.persistence.*;  import play.db.jpa.Model;  @Entity  public class Department extends Model {  public String name;  public String description; }


  一樣在app/controllers目錄下,建立控制層文件Departments,代碼以下:

  package controllers;
  public class Departments extends CRUD {
   }


  這個時候,再次運行play run,會發現使用http://localhost:9000/admin時,看到的界面將會比以前的多了可以增長部門實體類,你們能夠嘗試下。

  七:創建部門跟員工之間的鏈接關係

  如今咱們在創建了部門類和員工類後,能夠開始創建它們之間的關聯關係了。因爲一個部門中是有多個員工,因此在員工類employee中,寫入以下代碼,創建兩個類之間的關聯: 

   @ManyToOne
  public Department department;


  這裏依然使用了@ManyToOne的JPA註解去實現多對一的關係。在再次運行程序後,會發現,在增長員工時,會出現下拉菜單選擇框,讓其選擇該員工屬於哪個部門。

  八:創建公司實體類和控制類

  最後,咱們創建公司實體類和控制類。一樣,在app/models目錄下,創建Company類以下:

  

    package models;
  import javax.persistence.Entity;
  import play.db.jpa.Model;
  @Entity
  public class Company extends Model {
    public String name;
    public String address;
    public boolean isPublic;
   }


  company的控制層類代碼以下:  

    package controllers;
  import models.Company;
  @CRUD.For(Company.class)
  public class Companies extends CRUD{
   }


  這裏要提醒一點的是,因爲company的複數是companies,而play框架原先約定俗成的是在實體類名後直接加字母s,因此這裏使用了註解 @CRUD.For(Company.class),以代表該控制類文件Companies是爲company實體類服務的。

  一樣,一個公司裏有許多部門,所以在Deparment部門類中,創建以下的多對一關係: 

    @ManyToOne
  public Company company;


  再次運行程序,能夠看到,如今三個實體類都創建起來了,能夠分別對公司,部門和員工進行CRUD操做

  九:優化列表

  咱們在查看每一個實體類的列表時,發如今列表中,會把每條記錄的id都顯示出來,這個在程序中假設不須要看到id字段的話,能夠經過修改代碼實現,好比在Company類中,增長toString方法便可:

  public String toString() {
  return name;


  而在Department和Employee類中,能夠採用一樣的方法,以不顯示它們的id字段。

  十:增長校驗規則

  在輸入數據時,校驗規則是必不可少的,在play框架中,能夠很方便地使用註解來增長校驗規則,好比在員工類中,能夠要求輸入的fullName字段內容不能超過100個字符,並且fullName字段不能爲空,則在Employee類中,增長以下代碼便可: 

@Required @MaxSize(100) public String fullName;


  下面列出一些常見的校驗規則:

  @Email 校驗email合法性
  @InFuture 檢驗是否未來的日期
  @InPast 檢驗是不是過往的日期
  @Match 對正則表達式的判斷
  @Max 最大值
  @Min 最小值
  @Range 檢驗範圍
  @URL 檢驗是否URL


  十一:改變列表的顯示格式

  在默認狀況下,好比查看employee列表,只能看到employee的名稱字段,假設要在列表中看到每條記錄的每一個字段的話,要修改下play的模版,方法以下:

  1 中止如今的服務,CTRL-C中止。

  2 在命令行下,輸入:

  play crud:ov template Employees/list


  這將在app/views/Employees目錄下新創建一個list.html的頁面。

  3 從新輸入play run,並切換到eclipse中的項目中,按F5更新頁面。

  4 在eclipse中,打開app/views/Employees/list.html,這個是僱員列表的模版文件。

  5 在該頁中,找到id=」crudListTable」部分,修改成:

 #{crud.table fields:[fullName, dateOfHire, salary] /}


  即顯示完整全部字段。

  6 從新運行程序,便可看到效果,以下圖,能夠看到,能看到全部字段值。

  十二:改變列表中標題的顯示

  在默認狀態下,列表中顯示的字段標題是用實體類中的名稱的,假如想把fullName修改位Full Name的話,能夠在conf/messages下,增長:

  fullName=Full Name

  便可,以下圖顯示:

  小結

  在本文中,咱們學習瞭如何使用Play框架的腳手架功能,快速搭建CRUD的應用原型。Play框架的配置方法簡化了工做代碼量。目前Play框架正在不斷的完善中,讀者能夠根據本教程的指引實際操做後,進一步閱讀官方文檔加以深刻學習。參考文章:http://www.playframework.org/documentation/1.2.2/evolutions

-------------

整理自網絡

相關文章
相關標籤/搜索