了解Grails

Grails官网http://www.grails.org/是这样介绍Grails的。

1 它可以跑在java虚拟机上,与java结合的一流

2 快速开发

3 使用java-like动态语言

4 约定优于配置

5 减少重复开发

6 灵感来源于Ruby

7 强大的插件系统

8 IDE Support

我更倾向于其以上优点的第2条和4条,真的很方便。

下面通过一个小案例,来了解一下Grails

1 首先通过官网 http://www.grails.org/download  下载Grails。

2 将其解压到本地电脑任何位置

3 使用Grails之前需要配置环境变量,包括java JDK的JAVA_HOME(配置过程略) 和他本身的GRAILS_HOME=/path/to/grails

4 测试配置是否成功 cmd 输入命令grails -version 回车,出现版本号信息则证明安装成功

5 接下来我们创建一个Application来感受一下Grails ,创建之前,需要了解grails是通过命令的方式,快速创建你想要的。

通过黑窗口cd命令,进入任何目录下,或者工作空间中,运行grails create-app helloworld 命令,就可以在当前目录下创建一个helloworld项目。

比方说我是在test目录下创建的项目

这里除了grails create-app 命令之外,以后的其他命令都需要在项目文件夹下使用,所以我们在进行下一步之前要cd helloworld

6 cd helloworld 之后,我们可以敲grails,来启动Grails的交互命令行

此时,按TAB键可以看到grails下的常用命令等。

7 打印HelloWorld

我们可以通过grails> create-controller hello 来新建一个控制类,此时,你敲击create-  然后按TAB键,具有命令补全功能。所以记不住也没关系。

运行完创建控制类命令,Grails就会在你的项目文件夹的 controllers 中创建一个控制类

编辑它

之后,在cmd中通过grails> run-app命令来启动该项目,

此时,你就可以通过浏览器访问http://localhost:8080/helloworld/hello/index,你就会看到你写的HelloWorld了。

他的路径是采用 项目名/控制器名/action名的方式来访问的

如果提示8080端口被占用,你还可以通过以下命令,更改端口启动

以上页面位于视图文件夹下 grails-app/view/index.gsp

时间: 2025-01-03 23:37:12

了解Grails的相关文章

Grails 基础环境搭建及HelloWorld

Grails 基础环境搭建及HelloWorld Grails的介绍: Grails 为您提供 Rails 风格的开发体验,同时以可靠的 Java 技术作为坚强后盾. 但是 Grails 不仅仅是 Rails 通往 Java 平台的简单入口.Grails 吸取了 Rails 的经验,并将它们与现代 Java 开发的意识相结合. 可以认为 Grails 是受 Rails 启发,而不是由 Rails 转化而来. Groovy 的威力 就像 Rails 与 Ruby 编程语言联系非常紧密一样,Grai

grails框架的g:paginate分页标签的使用

我用到的grails是2.4.4. 该版本下游一个标签g:paginate 该标签下有以下几个参数:total(必须要填写的项).controller.action.prev.max.offset等等,我用到的有这几个参数,详细参数的使用参考API文档. 普通分页:(Tsystemparam是我代码的一个域类) 后台代码:写在控制器下需要执行的方法 params.max=5//给params参数附一个map集合key=max.value=5,每页展示的数据条数 \\跳转到showsysParam

grails过滤器和数据查询的几个重要方法

一  简单的查询方法 1.findAllWhere的使用 在grails中find和findAll的区别是find默认取出查询出来的第一条的记录,findAll则是查询出全部记录 def useFindAllWhere() { def city=CityInfo.findAllWhere(code:"HK",id:1) Iterator<CityInfo> it=city.iterator(); def buf=new StringBuffer(); while(it.ha

grails 解决emoji标签存入mysql

domain将存储emoji属性类型设置位byte[] class UserTest { byte[] nameBytes //存储emoji表情字段 Date dateCreated //grails 时间魔性字段 insert自动获取当前系统时间 Date lastUpdated //grails 时间魔性字段 update 自动获取当前系统修改时间 static constraints = { } //自定义get.set方法 转换byte[]和String def getName() {

Grails 简要

一.什么是Grails? Grails is an Open Source, full stack, web application framework for the JVM. It takes advantage of the Groovy programming language and convention over configuration to provide a productive and stream-lined development experience. 二.Grail

常用的grails插件

wkhtmltopdf:http://grails.org/plugin/wkhtmltopdf 将url转换为pdf文件 remote-ssh 远程ssh:http://grails.org/plugin/remote-ssh 常用的grails插件,布布扣,bubuko.com

grails、javascript 获取当前部署项目路径

javascript获取当前部署项目路径: 主要用到Location 对象,包含有关当前 URL 的信息,是 Window 对象的一个部分,可通过 window.location 属性来访问. 方法一 (window.document.location.href/window.document.location.pathname) ------------转自网络 function getRootPath_web() { //获取当前网址,如: http://localhost:8083/uim

grails email 发送邮件插件

1.配置email插件,在Config.groovy文件中配置: plugins { compile ":mail:1.0.5" } 2.配置Config.groovy文件: grails { mail { host = "smtp.163.com" //发送邮件服务器 username = "[email protected]" //发送邮件邮箱 password = "**********" //发送邮件邮箱密码 prop

grails一对一关联关系

一对一关联关系开发中用的没有一对多那么广泛,但是我觉得掌握以下还是有必要的,一对一关联关系有一张表存在外键,引用的一般是主表的主键.grails也对一对一关联关系提供了很好的支持,配置也是简单的不得了.grails配置一对一可以有下面三种选择: class Face { Nose nose } class Nose { } 这种属于单向关联,下面的这种则是双向关联,但是不能级联更新 class Face { Nose nose } class Nose { Face face } 接下来这种我觉

神奇的Grails:自关联的树状Domain一行代码获取所有子节点

见证Groovy/Grails的神奇时刻到了,你相信吗?用一行代码就可以获取树状结构中某节点下的所有全部子节点!注意:这个树是无深度限制的.无深度限制这点很重要,如果有限深度的树,那我们也很容易通过层级编码用“Like 001%”方式实现(维护编码也是一个有挑战性活).我们以一个非常常见的“类别”Domain为例,大类分小类,小类再细分,典型的树形结构,看看Grails是如何以简洁的语法表达的,体验Groovy语法的神奇! class Group{ String name static hasM