第一个Grails程序

之前看了先有关招聘的信息,发现用Grails的企业不是很多,我觉得是groovy语言没有得到广泛应用所导致的。但是多学点东西总是好的,这次打算分享的是我写的第一个grails应用程序

一  学习Grails需要知道的几件事

1.grails是groovy语言的开发框架

2.grails整合了spring,hibernate

3.grails不仅支持关系型数据库还支持非关系型数据库如nosql,mongodb

4.grails框架的开发需要遵守里面的规约配置

5.grails集成了一个内置的tomcat

二.使用grails完成简单的登录验证

1.数据库和表结构

这次我打算选择使用mysql,至于表结构很简单就只是很少的几个字段


version是程序生成的,可以不管

2.grails版本的选择

grails1.3的版本貌似有bug,如果使用的是关系数据库会出现异常,但是2.2左右的版本不会出问题,我使用的版本是2.2.3

3.创建项目

我使用的工具是IntelliJ IDE,这个IDE工具对grails的支持比较好,直接File--->create project....  ,之后工具会弹出一个对话框点击“create-app”就OK了,如果电脑的性能不好可能要稍微等一等


4.配置数据源

打开DataSource.groovy文件,找到environments,这个节点下面可以配置数据源,这里有2种模式分别是开发模式、生产模式。我这里选择开发模式

environments {
    development {
        dataSource {
            dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
            url = "jdbc:mysql://localhost:3306/student"
            driverClassName="com.mysql.jdbc.Driver"
            username="root"
            password="123456"
        }
    }
    test {
        dataSource {
            dbCreate = "update"
            url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE"
        }
    }
    production {
        dataSource {
           
            }
        }
    }
}


4.把mysql驱动包复制到跟目录的lib文件夹下面

5.编写Domain类

grails里写doman类比较简单,只需要有属性、约束等即可,不需要写getter和setter方法,如下所示:

class User {
    Integer id
    String userid
    String userpwd
    static constraints = {
        id(Identity:true)

    }
    static mapping = {
        table 'm_user'
    }
}

constraints里面配置的是约束,有关这个可以看API文档,mapping里的table表示的是这个doman和表的映射关系,如果不配置就表示要操作的是表名称是User,很明显数据库没有这个表

6.编写控制器

grails的控制器都已Controller结尾,如果有一个控制器叫UserController,那么如果要访问这个控制器应该写成 “user/方法名”,如果是这个控制器对于的视图页面那么user就不要了


class UserController {

   // static allowedMethods = [save: "POST", update: "POST", delete: "POST"]

    def toLoginUI = {
       // redirect(action: "list", params: params)
    }
    def check = {
       def u= User.findByUserid(params.userid)
        if(u){
            if(u.getUserpwd()==params.userpwd){

            }else{
                render "登录失败"
            }
        }else{
            render "用户名不存在"
        }

    }


}

grails规定如果有一个控制器叫UserController,那么对于的views目录下面应该有一个叫user的文件夹,如上所示控制器有两个方法toLoginUI、check,那么views下得user文件夹下面还应该有toLoginUI.jsp和check.jsp。当然了后缀为gap或者ftl也可以

findByUserid是grails给我们提供的动态方法,格式为findBy+属性名称


7.测试

首先启动项目,直接run就可以


或者直接点这个位置:

控制台出现类似下面的内容,说明项目已经成功启动了


接下来在浏览器地址栏输入http://localhost:8080/MyLogin/user/toLoginUI,之后回车登录界面就出来了


toLoginUI.jsp如下所示

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>用户登录</title>
</head>
<body>
<form action="check" method="post">
    用户名:<input type="text" name="userid"/><br>
    密码:<input type="password" name="userpwd"/><br>
    <input type="submit" value="登录"/>
</form>

</body>
</html>

输入用户名和密码后点击“登录”,就能看到结果了



如果有兴趣可以把这个项目下载下来,自己运行下:http://download.csdn.net/detail/chenwill3/7182317

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值