在Eclipse下构建Grails项目_第1页
在Eclipse下构建Grails项目_第2页
在Eclipse下构建Grails项目_第3页
在Eclipse下构建Grails项目_第4页
在Eclipse下构建Grails项目_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、下载安装JDK 1.5或者更高版本,下载安装Grails 2、创建.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在控制台下输入grails help,如果能看到Grails的命令列表,Grails的安装配置就 算成功了。图3.检验Grails是否安装成功3、创建一个Grails应用程序创建Grails应用程序需要使用grails create-app命令,在控制台输入:grails cre

2、ate-app ContactGrails会为我们创建一个名叫“Contact”文件夹,并在其中生成一个应用程序框架, 生成的应用程序目录结构如下:表1. Contact应用文件目录结构Contact+ grails-app+ controller+ domain+ conf存放配置信息,包含数据源、应用程序启动时自动执行的类ApplicationBootStrap.groovy, Url 映射配置存放控制器(“MVC”的“C”)存放域类(“MVC”的“M “)+ i18n存放国际化资源文件+ services存放 service 类+ taglib存放标签库类+ views存放视图模版(“M

3、VC”的V,每个控制器对应一个文件夹并存放在Views中,每个文件夹中会有多个GSP页面)+ layouts存放布局模板+ grails-tests存放测试代码+ hibernate存放可选的其它Hibernate配置文件+ lib存放其它Jar包(如JDBC驱动等)+ spring存放可选的Spring配置文件+ src+ java存放Java源程序+ groovy存放 Groovy 源程序+ web-app+ css存放CSS样式表+ images存放图片文件+ js存放 JavaScript 文件+ WEB-INF存放部署相关的文件+ index.gsp应用程序的首页从上述目录结构可以看

4、出Grails的“约定优于配置”设计理念,它约定了不同层次代 码存放的位置以及项目的组织方式,这既提供了一种最佳实践,同时也节省了开发人员 配置项目的精力。添加 Domain Class接下来,为刚创建好的项目添加一些功能。首先创建两个Domain Class。前面说过,DomainClass实质上是数据库表映射的实体类。通过控制台,进入项目的根文件夹(注意:本 文出现一切的控制台输入,除create-app夕卜,都需要在项目文件夹中执行),输入grails create-domain-class Team图 4.创建 Domain Class新创建的Domain类出现在了 grails-ap

5、p/domain文件夹中,同时Grails还创建了相 应的Test类。用记事本打开grails-appdomain文件夹中的Team.groovy,加入如下内容: class Team String teamName Date foundDate 这两行代码描述了 Team所包含的属性,从代码中可以看出Groovy语言的一些特点:无需七”结尾(有七”也不会报错);简单数据类型,与Java相同;创建 Controller接下来为Domain Class Team类创建Controller,在控制台输入grails create-controller TeamGrails 会在 grails-ap

6、p/controller 中创建一个名为 Teamcontroller 的类。编辑TeamController.groovy文件。加入如下代码:class TeamController def scaffold = Team 不要小看这仅有的一行代码,它使Team表有了相应的CRUD (增、删、查、改)功 能的页面。在控制台中输入grails run-app,运行应用以查看效果:图 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坦口听00VDB236Tearn Nanne:曰 UpdateDelete一些疑问前面的例子演示了如何使用Grails快速开发一个应用。如果使用Struts之类的JavaWeb框架开发一个类似上述的功能可能要花几个小时的时间,而使用Grails只用了不到五分钟 可以完成了创建。对Grails的“快”您应该有了一个比较直观的感受了吧?虽然现在程序已经实现了对Team表的CRUD操作,但读者可能会有如下的几个疑 问:数据库在哪?如何修改页面的外观?URL与Controller的对应关系是什么?表单能做验证吗? 配置数据库实现了 CR

8、UD,为什么没有配置数据库呢?Grails为用户提供的一个内置的轻量级数据库hsqldb,虽然在性能和功能上难以满足 要求,但是对于演示scaffold还是绰绰有余的。当然,我们可以用MySQL去替换它,下面就来 演示这个过程(如果读者不想使用MySQL去替换hsqldb,可以跳过下面的内容)。首先修改 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默认要求提供三个数据库,分别用于开发、测试和产品环境。修改连接的Driver 名称、用户名密码以及三个数据库的URL,保存。接下来分别创建上述三个数据库,并 把MySQL的JDBC驱动程序拷贝到lib文件夹中。接下来,重新运行项目(grails run-app),Grails会自动为Domain Class创建相 应的

11、数据库表。至此,Team的CRUD程序就运行在MySQL之上了。修改页面外观使用scaffold实现的CRUD实际上并没有创建GSP页面,所以无法定制View内 容。在 Grails中,可以使用 grails generate-all 命令为指定的 Domain Class仓U 建实现CRUD操作的Controller和View。所以,在控制台运行(如果提示TeamController已存在,是否 覆盖?请选”是):grails generate-all TeamGrails会在grails-appviews目录中创建一个名叫team的文件夹,文件夹的名称刚 好和controller 一一对应

12、。team文件夹中包含了 4个GSP文件,分别是create.gsp、 list.gsp、edit.gsp和show.gsp。这几个页面和之前scaffold实现的功能是一致的。修改这几个 页面的代码,即可以定制页面的外观。URL与Controller的命名约定打开 generate-all 命令产生的 Controller 即 TeamController.groovy 文件,可以看 到如下内容: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 的结构在Groovy语言中叫闭包(Closure),在Controller中, 每个闭包对应为一个Action,即处理一个特定的Web请求。然后看看Grails UR

14、L的 命名原则:http(s):/host:pot/ProjectName/ControllerName/ActionName/Paramete rs表单的验证Grails对表单的验证提供了强大的支持,可以使用Domain Class的验证来实现表单的验证。修改Team.groovy文件:class Team String teamNameDate foundDatestatic constraints =teamName(size:3.50,blank:false,unique:true)在Team类中加入个名叫constraints的静态Closure,并在其中描述验证逻辑: team的字

15、符串长度在350之间、不能为空、而且是唯一的。(注意早期版本的Grails 使用length限定字符串的长度,在V0.5以后改为了 size保存Team.groovy,重 新运行Contact,会发现验证逻辑已经可以工作了:图8.表单验证V; 6RRILSLis,Create TeamU Iss-s TeamJ的菖恰坨eirtnNann司饪皿旱唇T。拳m忌愚是尊一次Team NarneFound Date;21 v十月 寸2.QQ7 * 0VGrails TeamL-4 Cm*但验证失败后报出的错误信息对用户来说并不友好。想要修改这些内容,需要编辑grailsappi18n中的资源文件使用Gr

16、ails快速开发Web应用程序使用Eclipse搭建开发环境下面主要介绍Groovy插件的安装方法:首先启动 Eclipse,点击 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 点击OK:个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个这里注意导入项目后在项目中禁用Disable Groovy Compiler

18、Generating class Files可能会导致项目报一个Spring文件的错误,如果报错暂时先不禁用该功能, 之后可在Eclipse的Window中禁用该功能个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个图 12.禁用 Class auto generate接下来,配置使 Web tools能够编辑GSP。打开 Windows Preference General Editors File Associations,添加 *.gsp,并关联到 JSP Editor 即可:图13.将gsp关联到JSP Editor然后设置 Content Types: Windows Preference General Content Types 为JSP类型文件添加扩展名*.gsp:图14.为JSP类型文件添加扩展名七gsp至此,开发环境配置完毕。Grails已经为Eclipse创建了描述运行的文件,点击Run OpenRun Dialog。图15.运行Run AsOpen Ei-iri Dialog.Org:it_L!iJ: Fayorites.可以在Java Application下看到名为Contact的运行项目。选择并点击Run按扭。但

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论