版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1、下載安裝JDK 1.5或者更高版本,下載安裝Grails 2、創(chuàng)建.bat文件,文件:set JAVA_HOME=C:Javajdk1.6.0_13set GROOVY_HOME=E:2Ggroovy-1.6.3set path=%JAVA_HOME%/bin;%GROOVY_HOME%/bin;%path%cmd在控制臺(tái)下輸入grails help,如果能看到Grails的命令列表,Grails的安裝配置就 算成功了。圖3.檢驗(yàn)Grails是否安裝成功3、創(chuàng)建一個(gè)Grails應(yīng)用程序創(chuàng)建Grails應(yīng)用程序需要使用grails create-app命令,在控制臺(tái)輸入:grails cre
2、ate-app ContactGrails會(huì)為我們創(chuàng)建一個(gè)名叫“Contact”文件夾,并在其中生成一個(gè)應(yīng)用程序框架, 生成的應(yīng)用程序目錄結(jié)構(gòu)如下:表1. Contact應(yīng)用文件目錄結(jié)構(gòu)Contact+ grails-app+ controller+ domain+ conf存放配置信息,包含數(shù)據(jù)源、應(yīng)用程序啟動(dòng)時(shí)自動(dòng)執(zhí)行的類(lèi)ApplicationBootStrap.groovy, Url 映射配置存放控制器(“MVC”的“C”)存放域類(lèi)(“MVC”的“M “)+ i18n存放國(guó)際化資源文件+ services存放 service 類(lèi)+ taglib存放標(biāo)簽庫(kù)類(lèi)+ views存放視圖模版(“M
3、VC”的V,每個(gè)控制器對(duì)應(yīng)一個(gè)文件夾并存放在Views中,每個(gè)文件夾中會(huì)有多個(gè)GSP頁(yè)面)+ layouts存放布局模板+ grails-tests存放測(cè)試代碼+ hibernate存放可選的其它Hibernate配置文件+ lib存放其它Jar包(如JDBC驅(qū)動(dòng)等)+ spring存放可選的Spring配置文件+ src+ java存放Java源程序+ groovy存放 Groovy 源程序+ web-app+ css存放CSS樣式表+ images存放圖片文件+ js存放 JavaScript 文件+ WEB-INF存放部署相關(guān)的文件+ index.gsp應(yīng)用程序的首頁(yè)從上述目錄結(jié)構(gòu)可以看
4、出Grails的“約定優(yōu)于配置”設(shè)計(jì)理念,它約定了不同層次代 碼存放的位置以及項(xiàng)目的組織方式,這既提供了一種最佳實(shí)踐,同時(shí)也節(jié)省了開(kāi)發(fā)人員 配置項(xiàng)目的精力。添加 Domain Class接下來(lái),為剛創(chuàng)建好的項(xiàng)目添加一些功能。首先創(chuàng)建兩個(gè)Domain Class。前面說(shuō)過(guò),DomainClass實(shí)質(zhì)上是數(shù)據(jù)庫(kù)表映射的實(shí)體類(lèi)。通過(guò)控制臺(tái),進(jìn)入項(xiàng)目的根文件夾(注意:本 文出現(xiàn)一切的控制臺(tái)輸入,除create-app夕卜,都需要在項(xiàng)目文件夾中執(zhí)行),輸入grails create-domain-class Team圖 4.創(chuàng)建 Domain Class新創(chuàng)建的Domain類(lèi)出現(xiàn)在了 grails-ap
5、p/domain文件夾中,同時(shí)Grails還創(chuàng)建了相 應(yīng)的Test類(lèi)。用記事本打開(kāi)grails-appdomain文件夾中的Team.groovy,加入如下內(nèi)容: class Team String teamName Date foundDate 這兩行代碼描述了 Team所包含的屬性,從代碼中可以看出Groovy語(yǔ)言的一些特點(diǎn):無(wú)需七”結(jié)尾(有七”也不會(huì)報(bào)錯(cuò));簡(jiǎn)單數(shù)據(jù)類(lèi)型,與Java相同;創(chuàng)建 Controller接下來(lái)為Domain Class Team類(lèi)創(chuàng)建Controller,在控制臺(tái)輸入grails create-controller TeamGrails 會(huì)在 grails-ap
6、p/controller 中創(chuàng)建一個(gè)名為 Teamcontroller 的類(lèi)。編輯TeamController.groovy文件。加入如下代碼:class TeamController def scaffold = Team 不要小看這僅有的一行代碼,它使Team表有了相應(yīng)的CRUD (增、刪、查、改)功 能的頁(yè)面。在控制臺(tái)中輸入grails run-app,運(yùn)行應(yīng)用以查看效果:圖 5. Team list pageGA AILSIbiwi GuvwF-nnJDjita-M:Jrs=sa.圖 6. Show Team page伐 Home;Show Team圖 7. Edit team pag
7、e益 HomeEdit TeamFound Date:10七九月v坦口聽(tīng)00VDB236Tearn Nanne:曰 UpdateDelete一些疑問(wèn)前面的例子演示了如何使用Grails快速開(kāi)發(fā)一個(gè)應(yīng)用。如果使用Struts之類(lèi)的JavaWeb框架開(kāi)發(fā)一個(gè)類(lèi)似上述的功能可能要花幾個(gè)小時(shí)的時(shí)間,而使用Grails只用了不到五分鐘 可以完成了創(chuàng)建。對(duì)Grails的“快”您應(yīng)該有了一個(gè)比較直觀的感受了吧?雖然現(xiàn)在程序已經(jīng)實(shí)現(xiàn)了對(duì)Team表的CRUD操作,但讀者可能會(huì)有如下的幾個(gè)疑 問(wèn):數(shù)據(jù)庫(kù)在哪?如何修改頁(yè)面的外觀?URL與Controller的對(duì)應(yīng)關(guān)系是什么?表單能做驗(yàn)證嗎? 配置數(shù)據(jù)庫(kù)實(shí)現(xiàn)了 CR
8、UD,為什么沒(méi)有配置數(shù)據(jù)庫(kù)呢?Grails為用戶(hù)提供的一個(gè)內(nèi)置的輕量級(jí)數(shù)據(jù)庫(kù)hsqldb,雖然在性能和功能上難以滿(mǎn)足 要求,但是對(duì)于演示scaffold還是綽綽有余的。當(dāng)然,我們可以用MySQL去替換它,下面就來(lái) 演示這個(gè)過(guò)程(如果讀者不想使用MySQL去替換hsqldb,可以跳過(guò)下面的內(nèi)容)。首先修改 grails-appconfDataSource.groovy: datasource pooled = false driverClassName = com.mysql.jdbc.Driver username = root password = * hibernate cache.use
9、_second_level_cache=true cache.use_query_cache=true vider_class=org.hibernate.cache.EhCacheProvider / environment specific settings environments development datasource dbCreate = update / one ofcreate, ,create-drop,update url = jdbc:mysql:/localhost:3306/Contact_dev” test datasource dbCreate = updat
10、e url = jdbc:mysql:/localhost:3306/Contact_test production datasource dbCreate = update url = jdbc:mysql:/localhost:3306/Contact_prod Grails默認(rèn)要求提供三個(gè)數(shù)據(jù)庫(kù),分別用于開(kāi)發(fā)、測(cè)試和產(chǎn)品環(huán)境。修改連接的Driver 名稱(chēng)、用戶(hù)名密碼以及三個(gè)數(shù)據(jù)庫(kù)的URL,保存。接下來(lái)分別創(chuàng)建上述三個(gè)數(shù)據(jù)庫(kù),并 把MySQL的JDBC驅(qū)動(dòng)程序拷貝到lib文件夾中。接下來(lái),重新運(yùn)行項(xiàng)目(grails run-app),Grails會(huì)自動(dòng)為Domain Class創(chuàng)建相 應(yīng)的
11、數(shù)據(jù)庫(kù)表。至此,Team的CRUD程序就運(yùn)行在MySQL之上了。修改頁(yè)面外觀使用scaffold實(shí)現(xiàn)的CRUD實(shí)際上并沒(méi)有創(chuàng)建GSP頁(yè)面,所以無(wú)法定制View內(nèi) 容。在 Grails中,可以使用 grails generate-all 命令為指定的 Domain Class倉(cāng)U 建實(shí)現(xiàn)CRUD操作的Controller和View。所以,在控制臺(tái)運(yùn)行(如果提示TeamController已存在,是否 覆蓋?請(qǐng)選”是):grails generate-all TeamGrails會(huì)在grails-appviews目錄中創(chuàng)建一個(gè)名叫team的文件夾,文件夾的名稱(chēng)剛 好和controller 一一對(duì)應(yīng)
12、。team文件夾中包含了 4個(gè)GSP文件,分別是create.gsp、 list.gsp、edit.gsp和show.gsp。這幾個(gè)頁(yè)面和之前scaffold實(shí)現(xiàn)的功能是一致的。修改這幾個(gè) 頁(yè)面的代碼,即可以定制頁(yè)面的外觀。URL與Controller的命名約定打開(kāi) generate-all 命令產(chǎn)生的 Controller 即 TeamController.groovy 文件,可以看 到如下內(nèi)容:class Teamcontroller def index = redirect(action:list,params:params) / the delete, save and update
13、actions only accept POST requestsdef allowedMethods = delete:POST, save:POST, update:POSTdef list = if(!params.max) params.max = 10teamList: Team.list( params )def show = team : Team.get( params.id ).其中def xxx = (xxx 的結(jié)構(gòu)在Groovy語(yǔ)言中叫閉包(Closure),在Controller中, 每個(gè)閉包對(duì)應(yīng)為一個(gè)Action,即處理一個(gè)特定的Web請(qǐng)求。然后看看Grails UR
14、L的 命名原則:http(s):/host:pot/ProjectName/ControllerName/ActionName/Paramete rs表單的驗(yàn)證Grails對(duì)表單的驗(yàn)證提供了強(qiáng)大的支持,可以使用Domain Class的驗(yàn)證來(lái)實(shí)現(xiàn)表單的驗(yàn)證。修改Team.groovy文件:class Team String teamNameDate foundDatestatic constraints =teamName(size:3.50,blank:false,unique:true)在Team類(lèi)中加入個(gè)名叫constraints的靜態(tài)Closure,并在其中描述驗(yàn)證邏輯: team的字
15、符串長(zhǎng)度在350之間、不能為空、而且是唯一的。(注意早期版本的Grails 使用length限定字符串的長(zhǎng)度,在V0.5以后改為了 size保存Team.groovy,重 新運(yùn)行Contact,會(huì)發(fā)現(xiàn)驗(yàn)證邏輯已經(jīng)可以工作了:圖8.表單驗(yàn)證V; 6RRILSLis,Create TeamU Iss-s TeamJ的菖恰坨eirtnNann司飪皿旱唇T。拳m忌愚是尊一次Team NarneFound Date;21 v十月 寸2.QQ7 * 0VGrails TeamL-4 Cm*但驗(yàn)證失敗后報(bào)出的錯(cuò)誤信息對(duì)用戶(hù)來(lái)說(shuō)并不友好。想要修改這些內(nèi)容,需要編輯grailsappi18n中的資源文件使用Gr
16、ails快速開(kāi)發(fā)Web應(yīng)用程序使用Eclipse搭建開(kāi)發(fā)環(huán)境下面主要介紹Groovy插件的安裝方法:首先啟動(dòng) Eclipse,點(diǎn)擊 Help Software Updates Find and Install:圖9.更新和安裝11* E心電河單M女辛辦 珥xEsir血if備 ItleeunipCl渺5扣1H十&I Fa?ka B HLxa K 胞汁姑 gEgtli.: 旨一1 偵 M mr-Ery si Fla 11WtJ f uxcks-,-Chcal-j= |J.xb 3k. f e az Lz.#oni 5razdi*kiiti菅盛EM旬由 jiMjwy -.3 fFSllff-bRj/
17、fi-Mt!S hite rrurt 9i & apr w/. Am=5s:i:切.訝gy也Conf ig.客了8可 D就擋9口如,皿如叩: lj做胃酒n即 Cttjrf XCLF91 sProperties Groovy Project properties 選擇 Disable Groovy Compiler Generating class Files 點(diǎn)擊OK:個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)這里注意導(dǎo)入項(xiàng)目后在項(xiàng)目中禁用Disable Groovy Compiler
18、Generating class Files可能會(huì)導(dǎo)致項(xiàng)目報(bào)一個(gè)Spring文件的錯(cuò)誤,如果報(bào)錯(cuò)暫時(shí)先不禁用該功能, 之后可在Eclipse的Window中禁用該功能個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)圖 12.禁用 Class auto generate接下來(lái),配置使 Web tools能夠編輯GSP。打開(kāi) Windows Preference General Editors File Associations,添加 *.gsp,并關(guān)聯(lián)到 JSP Editor 即可:圖13.將gsp關(guān)聯(lián)到JSP Editor然后設(shè)置 Content Types: Windows Preference General Content Types 為JSP類(lèi)型文件添加擴(kuò)展名*.gsp:圖14.為JSP類(lèi)型文件添加擴(kuò)展名七gsp至此,開(kāi)發(fā)環(huán)境配置完畢。Grails已經(jīng)為Eclipse創(chuàng)建了描述運(yùn)行的文件,點(diǎn)擊Run OpenRun Dialog。圖15.運(yùn)行Run AsOpen Ei-iri Dialog.Org:it_L!iJ: Fayorites.可以在Java Application下看到名為Contact的運(yùn)行項(xiàng)目。選擇并點(diǎn)擊Run按扭。但
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合并同類(lèi)項(xiàng)解元次方程說(shuō)課稿
- 電商項(xiàng)目規(guī)劃
- 美術(shù)館黃金屋租賃合同
- 休閑娛樂(lè)場(chǎng)所消火栓施工合同
- 會(huì)計(jì)師事務(wù)所出納人員聘用協(xié)議
- 老年大學(xué)教師勞動(dòng)合同范本
- 羽絨制品維修工聘用合同模板
- 農(nóng)藥采購(gòu)合同管理
- 電梯工程師招聘協(xié)議
- 房地產(chǎn)開(kāi)發(fā)招標(biāo)廉政責(zé)任
- 工程地質(zhì)剖面圖的繪制(正式)
- JJG 707-2014扭矩扳子行業(yè)標(biāo)準(zhǔn)
- 2024醫(yī)保練兵理論知識(shí)考試題庫(kù)(濃縮500題)
- 三重一大培訓(xùn)課件
- 【增加多場(chǎng)景】員工使用公司車(chē)輛協(xié)議
- 單孔腹腔鏡手術(shù)
- 2024年度2024行政復(fù)議法培訓(xùn)
- 車(chē)輛托運(yùn)合同
- 2023土的分散性判別試驗(yàn)規(guī)程
- 牧原招聘測(cè)評(píng)試題
- 29.4常見(jiàn)腫瘤標(biāo)志物講解
評(píng)論
0/150
提交評(píng)論