之前看了先有关招聘的信息,发现用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 {
}
}
}
}
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.youkuaiyun.com/detail/chenwill3/7182317