在Eclipse下构建Grails项目.docx

上传人:b****7 文档编号:10905544 上传时间:2023-02-23 格式:DOCX 页数:15 大小:1.51MB
下载 相关 举报
在Eclipse下构建Grails项目.docx_第1页
第1页 / 共15页
在Eclipse下构建Grails项目.docx_第2页
第2页 / 共15页
在Eclipse下构建Grails项目.docx_第3页
第3页 / 共15页
在Eclipse下构建Grails项目.docx_第4页
第4页 / 共15页
在Eclipse下构建Grails项目.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

在Eclipse下构建Grails项目.docx

《在Eclipse下构建Grails项目.docx》由会员分享,可在线阅读,更多相关《在Eclipse下构建Grails项目.docx(15页珍藏版)》请在冰豆网上搜索。

在Eclipse下构建Grails项目.docx

在Eclipse下构建Grails项目

1、下载安装JDK1.5或者更高版本,下载安装Grails

2、创建.bat文件,文件:

setJAVA_HOME=C:

\Java\jdk1.6.0_13

setGROOVY_HOME=E:

\2G\groovy-1.6.3

setpath=%JAVA_HOME%/bin;%GROOVY_HOME%/bin;%path%

cmd

在控制台下输入grailshelp,如果能看到Grails的命令列表,Grails的安装配置就算成功了。

图3.检验Grails是否安装成功

3、创建一个Grails应用程序

创建Grails应用程序需要使用grailscreate-app命令,在控制台输入:

grailscreate-appContact

Grails会为我们创建一个名叫“Contact”文件夹,并在其中生成一个应用程序框架,生成的应用

程序目录结构如下:

表1.Contact应用文件目录结构

Contact

+grails-app

+conf存放配置信息,包含数据源、应用程序启动时自动执行的类ApplicationBootStrap.groovy,Url映射配置

+controller存放控制器(“MVC”的“C”)

+domain存放域类(“MVC”的“M“)

+i18n存放国际化资源文件

+services存放service类

+taglib存放标签库类

+views存放视图模版(“MVC”的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应用程序的首页

从上述目录结构可以看出Grails的“约定优于配置”设计理念,它约定了不同层次代码存放的位置以及项目的组织方式,这既提供了一种最佳实践,同时也节省了开发人员配置项目的精力。

添加DomainClass

接下来,为刚创建好的项目添加一些功能。

首先创建两个DomainClass。

前面说过,Domain

Class实质上是数据库表映射的实体类。

通过控制台,进入项目的根文件夹(注意:

本文出现一切

的控制台输入,除create-app外,都需要在项目文件夹中执行),输入grailscreate-domain-classTeam

图4.创建DomainClass

新创建的Domain类出现在了grails-app/domain文件夹中,同时Grails还创建了相应的Test

类。

用记事本打开grails-app\domain文件夹中的Team.groovy,加入如下内容:

classTeam{

StringteamName

DatefoundDate

}

这两行代码描述了Team所包含的属性,从代码中可以看出Groovy语言的一些特点:

1.无需“;”结尾(有“;”也不会报错);

2.简单数据类型,与Java相同;

创建Controller

接下来为DomainClassTeam类创建Controller,在控制台输入grailscreate-controllerTeam

Grails会在grails-app/controller中创建一个名为TeamController的类。

编辑

TeamController.groovy文件。

加入如下代码:

classTeamController{

defscaffold=Team

}

不要小看这仅有的一行代码,它使Team表有了相应的CRUD(增、删、查、改)功能的页面。

在控制台中输入grailsrun-app,运行应用以查看效果:

 

图5.Teamlistpage

图6.ShowTeampage

图7.Editteampage

一些疑问

前面的例子演示了如何使用Grails快速开发一个应用。

如果使用Struts之类的JavaWeb框架

开发一个类似上述的功能可能要花几个小时的时间,而使用Grails只用了不到五分钟可以完成了

创建。

对Grails的“快”您应该有了一个比较直观的感受了吧?

虽然现在程序已经实现了对Team表的CRUD操作,但读者可能会有如下的几个疑问:

1.数据库在哪?

2.如何修改页面的外观?

3.URL与Controller的对应关系是什么?

4.表单能做验证吗?

配置数据库

实现了CRUD,为什么没有配置数据库呢?

Grails为用户提供的一个内置的轻量级数据库hsqldb,虽然在性能和功能上难以满足要求,但是

对于演示scaffold还是绰绰有余的。

当然,我们可以用MySQL去替换它,下面就来演示这个过

程(如果读者不想使用MySQL去替换hsqldb,可以跳过下面的内容)。

首先修改grails-app\conf\DataSource.groovy:

dataSource{

pooled=false

driverClassName="com.mysql.jdbc.Driver"

username="root"

password="***"

}

hibernate{

cache.use_second_level_cache=true

cache.use_query_cache=true

cache.provider_class='org.hibernate.cache.EhCacheProvider'

}

//environmentspecificsettings

environments{

development{

dataSource{

dbCreate="update"//oneof'create','create-drop','update'

url="jdbc:

mysql:

//localhost:

3306/Contact_dev"

}

}

test{

dataSource{

dbCreate="update"

url="jdbc:

mysql:

//localhost:

3306/Contact_test"

}

}

production{

dataSource{

dbCreate="update"

url="jdbc:

mysql:

//localhost:

3306/Contact_prod"

}

}

}

Grails默认要求提供三个数据库,分别用于开发、测试和产品环境。

修改连接的Driver名称、用户名密码以及三个数据库的URL,保存。

接下来分别创建上述三个数据库,并把MySQL的JDBC驱动程序拷贝到lib文件夹中。

接下来,重新运行项目(grailsrun-app),Grails会自动为DomainClass创建相应的数据库

表。

至此,Team的CRUD程序就运行在MySQL之上了。

修改页面外观

使用scaffold实现的CRUD实际上并没有创建GSP页面,所以无法定制View内容。

在Grails中,可以使用grailsgenerate-all命令为指定的DomainClass创建实现CRUD操作的

Controller和View。

所以,在控制台运行(如果提示TeamController已存在,是否覆盖?

选"是"):

grailsgenerate-allTeam

Grails会在grails-app\views\目录中创建一个名叫team的文件夹,文件夹的名称刚好和

controller一一对应。

team文件夹中包含了4个GSP文件,分别是create.gsp、list.gsp、

edit.gsp和show.gsp。

这几个页面和之前scaffold实现的功能是一致的。

修改这几个页面的代

码,即可以定制页面的外观。

URL与Controller的命名约定

打开generate-all命令产生的Controller即TeamController.groovy文件,可以看到如下内容:

classTeamController{

defindex={redirect(action:

list,params:

params)}

//thedelete,saveandupdateactionsonlyacceptPOSTrequests

defallowedMethods=[delete:

'POST',save:

'POST',update:

'POST']

deflist={

if(!

params.max)params.max=10

[teamList:

Team.list(params)]

}

defshow={

[team:

Team.get(params.id)]

}…

其中defxxx={xxx}的结构在Groovy语言中叫闭包(Closure),在Controller中,每个闭包对应为一个Action,即处理一个特定的Web请求。

然后看看GrailsURL的命名原则:

http(s):

//host:

pot/ProjectName/ControllerName/ActionName/Parameters

表单的验证

Grails对表单的验证提供了强大的支持,可以使用DomainClass的验证来实现表单的验证。

修改Team.groovy文件:

classTeam{

StringteamName

DatefoundDate

staticconstraints={teamName(size:

3..50,blank:

false,unique:

true)

}

}

在Team类中加入个名叫constraints的静态Closure,并在其中描述验证逻辑:

team的字符串长度在3~50之间、不能为空、而且是唯一的。

(注意早期版本的Grails使用length限定字符串的长度,在V0.5以后改为了size保存Team.groovy,重新运行Contact,会发现验证逻辑已经可以工作了:

图8.表单验证

但验证失败后报出的错误信息对用户来说并不友好。

想要修改这些内容,需要编辑grailsapp\i18n中的资源文件

 

使用Grails快速开发Web应用程序

使用Eclipse搭建开发环境

下面主要介绍Groovy插件的安装方法:

首先启动Eclipse,点击Help>SoftwareUpdates>FindandInstall…:

图9.更新和安装

在弹出窗口中选择Searchfornewfeaturestoinstall点击Next:

图10.查找新特性

然后在新窗口中点击NewRemoteSite...,并在弹出窗口中输入:

Name:

Groovy

URL:

http:

//dist.codehaus.org/groovy/distributions/updateDev/

图11.添加ClasspathVariables

然后还需要禁用Groovy插件的Classautogenerate的功能,在Contact上右键>Properties>GroovyProjectproperties>选择DisableGroovyCompilerGeneratingclassFiles>点击OK:

***************************************************************************

这里注意导入项目后在项目中禁用DisableGroovyCompilerGeneratingclassFiles可能会导致项目报一个Spring文件的错误,如果报错暂时先不禁用该功能,

之后可在Eclipse的Window中禁用该功能

***************************************************************************

图12.禁用Classautogenerate

接下来,配置使Webtools能够编辑GSP。

打开Windows>Preference>General>Editors>FileAssociations,添加*.gsp,并关联到JSPEditor即可:

图13.将gsp关联到JSPEditor

然后设置ContentTypes:

Windows>Preference>General>ContentTypes,为JSP类型文件添加扩展名*.gsp:

 

图14.为JSP类型文件添加扩展名*.gsp

至此,开发环境配置完毕。

Grails已经为Eclipse创建了描述运行的文件,点击Run>OpenRunDialog。

图15.运行

可以在JavaApplication下看到名为Contact的运行项目。

选择并点击Run按扭。

但Grails提供的run脚本目前还存在bug,运行时可能会抛出如下异常:

java.lang.IllegalArgumentException:

Variable$tools.jaringroovy-starter.conf

referencesanon-existentSystemproperty!

TrypassingthepropertytotheVMusing-Dtools.jar=myValue

因此最后还需要修改Contact的运行参数,加入:

-Dtools.jar=%JAVA_HOME%\lib\tools.jar

 

图16.修改Contact运行参数

现在,可以在Eclipse下运行和调试Grails程序了。

***************************************************************************

此时如果遇到:

groovy.lang.MissingMethodException:

Nosignatureofmethod:

groovy.util.ConfigSlurper.parse()isapplicableforargumenttypes:

(DataSource)values:

%7BDataSource@...}错误。

则确认一下是否已经禁用Groovy插件的Classautogenerate,以及删除项目目录下的所有class文件。

*********************************************************************

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1