自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java開發(fā)框架Play框架快速入門

開發(fā) 后端
目前,Ruby on Rails及Grails等動(dòng)態(tài)腳本語(yǔ)言正發(fā)展得如火如荼,而在以Java為首的開源最大陣營(yíng)中,也出現(xiàn)了各種框架。其中最著名的就是Play框架(http://download.playframework.org)。

Play 框架是一個(gè)完整的 Web 應(yīng)用開發(fā)框架,覆蓋了 Web 應(yīng)用開發(fā)的各個(gè)方面。它借鑒了流行的 Ruby on Rails 和 Grails 等框架,又有自己獨(dú)有的優(yōu)勢(shì)。具體表現(xiàn)在以下幾個(gè)方面:其一,通過 Play 框架提供的命令行工具,可以快速創(chuàng)建Java Web 應(yīng)用。其二,它擁有Java 代碼動(dòng)態(tài)編譯機(jī)制,在修改代碼之后,不需要重啟服務(wù)器就可以直接看到修改之后的結(jié)果。其三,它還使用 JPA 規(guī)范來完成領(lǐng)域?qū)ο蟮某志没梢院芊奖愕氖褂貌煌年P(guān)系數(shù)據(jù)庫(kù)作為后臺(tái)存儲(chǔ)。其四,它使用 Groovy 作為視圖層模板使用的表達(dá)式語(yǔ)言。模板之間的繼承機(jī)制避免了重復(fù)的代碼??偟膩碚f,Play 框架非常適合快速創(chuàng)建Web 應(yīng)用開發(fā)。本文將為有一定Java Web框架基礎(chǔ)的讀者,來重點(diǎn)介紹如何使用play框架來編制一個(gè)最簡(jiǎn)單的信息增刪改查應(yīng)用。

一、安裝Play框架

安裝play框架前,只需要使用JDK 1.5以上的版本即可,將官網(wǎng)上的play框架下載后解壓到某個(gè)指定目錄下,使用的是eclipse開發(fā)工具即可。在本文中,將介紹的例子,是一個(gè)關(guān)于公司、部門、員工之間的CRUD操作,其關(guān)系為:一個(gè)公司有很多部門,一個(gè)部門有很多個(gè)員工。

二、開始使用PLAY框架的腳手架功能

PLAY框架為能讓用戶快速開始搭建play系統(tǒng)的原型。下面是使用play中腳手架功能的步驟:

在命令行方式下,轉(zhuǎn)到play框架的安裝目錄,本文假設(shè)為c:\play下。

假設(shè)我們的應(yīng)用的名稱為corporations,則在play中,新建立一個(gè)應(yīng)用只需要用如下命令即可:  play new corporations,其中new表示新建應(yīng)用,new后的名稱則為應(yīng)用的名稱。

在輸入上面的語(yǔ)句后,會(huì)提示輸入確認(rèn)系統(tǒng)的名字,這里輸入corporations,按回車確認(rèn)即可。

我們使用cd corporations目錄中,會(huì)發(fā)現(xiàn)已經(jīng)有play自帶的框架的內(nèi)容了。我們可以在命令行方式下,執(zhí)行play run,這時(shí)play就會(huì)啟動(dòng)自帶的jetty服務(wù)器,將應(yīng)用啟動(dòng)起來。

在啟動(dòng)后,可以通過瀏覽器瀏覽剛才新建的應(yīng)用了,方法是http://localhost:9000,就可以看到一個(gè)默認(rèn)的play應(yīng)用,其中顯示的首頁(yè)中,簡(jiǎn)單指導(dǎo)了一些簡(jiǎn)單的配置方法。如下圖:

 

 

三、配置應(yīng)用 將框架工程導(dǎo)入eclipse

我們?yōu)榱艘趀clipse中方便我們的編碼,所以需要把play剛為我們建立好的框架工程導(dǎo)入到我們的eclipse中去,所以我們按如下步驟去做:

1 使用CTRL-C,先把我們正在運(yùn)行的應(yīng)用停止下來。

2 依然在corporations目錄下,輸入play eclipse,表示要生成能導(dǎo)入eclipse的框架工程。

3 再啟動(dòng)eclipse ,然后使用導(dǎo)入工程的方法,把corporations工程導(dǎo)入。

4在這個(gè)例子中,用的只是HSQL,所以打開conf/application.conf文件,將下面的

db=mem 語(yǔ)句前的注釋符號(hào)去掉,表示我們將使用hsql。

5 同樣,在conf/application.conf文件中,增加如下這行,表示我們將使用play腳手架框架自帶的CRUD功能:

  1. module.crud=${play.path}/modules/crud 

6 在conf/routes文件中,增加如下這行:

  1. * /admin module:crud 

注意,在play框架中,routes是路由控制器,這行表示,將所有的CRUD操作都是只有通過 */admin訪問的請(qǐng)求,才能實(shí)現(xiàn)play自帶的CRUD功能。

7 在進(jìn)行上述修改后,我們?cè)俚矫钚蟹绞较?,運(yùn)行play eclipse,然后再到ECLIPSE下按F5刷新一下

8 如果此時(shí)再使用play run,運(yùn)行會(huì)發(fā)現(xiàn)暫時(shí)還沒有更新,因?yàn)槲覀円M(jìn)行數(shù)據(jù)層的配置。

四、創(chuàng)建員工實(shí)體對(duì)象和控制層

Play框架完全遵守MVC分層架構(gòu)標(biāo)準(zhǔn),因此我們按照MVC的分層來設(shè)計(jì)我們的引用。我們先創(chuàng)建員工實(shí)體對(duì)象和其控制層。

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

  1. Package models;  
  2.   import java.util.Date;  
  3.   import javax.persistence.*;  
  4.   import play.db.jpa.Model;  
  5.   @Entity 
  6.   public class Employee extends Model {  
  7.   public String fullName;  
  8.   public Integer salary;  
  9.   public Date dateOfHire;  
  10.   } 

在Play框架中,默認(rèn)使用的是jpa注解標(biāo)準(zhǔn),使用@Entity注解,說明該類是屬于實(shí)體類,這里都是繼承了play自己的模型層基類Model,這里由于是示例,只是列出了三個(gè)對(duì)象的屬性。

接下來,在app/controllers中,創(chuàng)建員工類的控制層文件,代碼如下

  1. package controllers;  
  2.   public class Employees extends CRUD  
  3.   { // an empty class  
  4.   } 

這里看到,控制層文件的命名是Employees,使用的是PLAY框架優(yōu)先約定的命名規(guī)則:實(shí)體類的復(fù)數(shù)形式。并且這里繼承了Play中自帶的CRUD基類的功能,這樣,就可以在我們的應(yīng)用中輕易使用到PLAY自帶的CRUD功能了。

現(xiàn)在我們馬上來運(yùn)行下應(yīng)用,依然輸入play run,再在瀏覽器中輸入:

http://localhost:9000/admin即可看到如下的效果:

 

 

這個(gè)時(shí)候,點(diǎn)Add按鈕,就可以增加員工了。

五、創(chuàng)建部門實(shí)體類和部門控制層

接下來,我們繼續(xù)創(chuàng)建部門實(shí)體類和部門控制層的文件。同樣,在app/models目錄下,新建立Department類,如下:

  1. package models;  
  2.   import javax.persistence.*;  
  3.   import play.db.jpa.Model;  
  4.   @Entity 
  5.   public class Department extends Model {  
  6.   public String name;  
  7.   public String description;  
  8.   }  

同樣在app/controllers目錄下,創(chuàng)建控制層文件Departments,代碼如下:

  1. package controllers;  
  2.   public class Departments extends CRUD {  
  3.   } 

這個(gè)時(shí)候,再次運(yùn)行play run,會(huì)發(fā)現(xiàn)使用http://localhost:9000/admin時(shí),看到的界面將會(huì)比之前的多了能夠增加部門實(shí)體類,大家可以嘗試下。

六、建立部門跟員工之間的連接關(guān)系

現(xiàn)在我們?cè)诮⒘瞬块T類和員工類后,可以開始建立它們之間的關(guān)聯(lián)關(guān)系了。由于一個(gè)部門中是有多個(gè)員工,所以在員工類employee中,寫入如下代碼,建立兩個(gè)類之間的關(guān)聯(lián):

  1. @ManyToOne 
  2.   public Department department; 

這里依然使用了@ManyToOne的JPA注解去實(shí)現(xiàn)多對(duì)一的關(guān)系。在再次運(yùn)行程序后,會(huì)發(fā)現(xiàn),在增加員工時(shí),會(huì)出現(xiàn)下拉菜單選擇框,讓其選擇該員工屬于哪一個(gè)部門。

#p#

七、建立公司實(shí)體類和控制類

***,我們建立公司實(shí)體類和控制類。同樣,在app/models目錄下,建立Company類如下:

  1. package models;  
  2.   import javax.persistence.Entity;  
  3.   import play.db.jpa.Model;  
  4.   @Entity 
  5.   public class Company extends Model {  
  6.   public String name;  
  7.   public String address;  
  8.   public boolean isPublic;  
  9.  } 

company的控制層類代碼如下:

  1. package controllers;  
  2.   import models.Company;  
  3.   @CRUD.For(Company.class)  
  4.   public class Companies extends CRUD  
  5.   {  
  6.   } 

這里要提醒一點(diǎn)的是,由于company的復(fù)數(shù)是companies,而play框架原先約定俗成的是在實(shí)體類名后直接加字母s,所以這里使用了注解 @CRUD.For(Company.class),以表明該控制類文件Companies是為company實(shí)體類服務(wù)的。

同樣,一個(gè)公司里有許多部門,因此在Deparment部門類中,建立如下的多對(duì)一關(guān)系:

  1. @ManyToOne 
  2. public Company company;  

再次運(yùn)行程序,可以看到,現(xiàn)在三個(gè)實(shí)體類都建立起來了,可以分別對(duì)公司,部門和員工進(jìn)行CRUD操作,如下圖:

 

 

八:優(yōu)化列表

我們?cè)诓榭疵總€(gè)實(shí)體類的列表時(shí),發(fā)現(xiàn)在列表中,會(huì)把每條記錄的id都顯示出來,這個(gè)在程序中假設(shè)不需要看到id字段的話,可以通過修改代碼實(shí)現(xiàn),比如在Company類中,增加toString方法即可:

  1. public String toString() {  
  2.   return name;  
  3.   } 

而在Department和Employee類中,可以采用同樣的方法,以不顯示它們的id字段。

九:增加校驗(yàn)規(guī)則

在輸入數(shù)據(jù)時(shí),校驗(yàn)規(guī)則是必不可少的,在play框架中,可以很方便地使用注解來增加校驗(yàn)規(guī)則,比如在員工類中,可以要求輸入的fullName字段內(nèi)容不能超過100個(gè)字符,而且fullName字段不能為空,則在Employee類中,增加如下代碼即可:

  1. @Required @MaxSize(100) public String fullName; 

下面列出一些常見的校驗(yàn)規(guī)則:

@Email 校驗(yàn)email合法性

@InFuture 檢驗(yàn)是否將來的日期

@InPast 檢驗(yàn)是否是過往的日期

@Match 對(duì)正則表達(dá)式的判斷

@Max ***值

@Min 最小值

@Range 檢驗(yàn)范圍

@URL 檢驗(yàn)是否URL

十:改變列表的顯示格式

在默認(rèn)情況下,比如查看employee列表,只能看到employee的名稱字段,假設(shè)要在列表中看到每條記錄的每個(gè)字段的話,要修改下play的模版,方法如下:

1 停止現(xiàn)在的服務(wù),CTRL-C停止。

2 在命令行下,輸入:

play crud:ov --template Employees/list

這將在app/views/Employees目錄下新建立一個(gè)list.html的頁(yè)面。

3 重新輸入play run,并切換到eclipse中的項(xiàng)目中,按F5更新頁(yè)面。

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

5 在該頁(yè)中,找到id=”crudListTable”部分,修改為:

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

即顯示完整所有字段。

6 重新運(yùn)行程序,即可看到效果,如下圖,可以看到,能看到所有字段值。

 

 

十一:改變列表中標(biāo)題的顯示

在默認(rèn)狀態(tài)下,列表中顯示的字段標(biāo)題是用實(shí)體類中的名稱的,假如想把fullName修改位Full Name的話,可以在conf/messages下,增加:

fullName=Full Name

即可,如下圖顯示:

 

 

小結(jié)

在本文中,我們學(xué)習(xí)了如何使用Play框架的腳手架功能,快速搭建CRUD的應(yīng)用原型。Play框架的配置方法簡(jiǎn)化了工作代碼量。目前Play框架正在不斷的完善中,讀者可以根據(jù)本教程的指引實(shí)際操作后,進(jìn)一步閱讀官方文檔加以深入學(xué)習(xí)。參考文章:http://www.playframework.org/documentation/1.2.2/evolutions

原文:http://tech.it168.com/a2011/1107/1269/000001269990_all.shtml

【編輯推薦】

  1. Java Web框架Play Framework 2.0預(yù)覽版發(fā)布
  2. 盤點(diǎn)2011 Java主要成就
  3. 淺述Java枚舉常見7種用法
  4. JavaFX 2.0正式版發(fā)布
  5. 甲骨文在JavaOne大會(huì)中披露Java未來發(fā)展藍(lán)圖
責(zé)任編輯:陳貽新 來源: it168
相關(guān)推薦

2010-11-17 12:59:52

2012-02-23 13:13:00

JavaPlay Framew

2012-02-23 13:48:16

JavaPlay Framew

2020-11-23 10:48:39

Golang GinW

2021-07-28 06:51:08

FlaskPythonWeb

2009-05-12 09:54:09

JavaRestCoC

2019-09-02 14:51:33

2012-07-23 08:30:51

Java快速開發(fā)

2013-07-22 11:18:02

Android開發(fā)框架Afinal

2012-08-28 09:54:35

SilverlightRapidSLSilverlight

2022-01-06 14:59:53

Java框架magic-api

2011-12-16 09:49:38

Java

2012-01-13 11:02:27

JavaWebOpenXava

2014-07-08 09:37:28

跨平臺(tái)Webhtml5

2011-09-09 17:01:42

框架

2012-02-23 13:59:28

Play FramewJava

2015-07-23 10:54:09

Java Mybati框架

2009-06-25 17:14:59

JSF框架

2021-12-06 09:00:00

開發(fā)WebDjango

2012-02-22 15:51:22

JavaPlay Framew
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)