klcwt 发表于 2013-1-27 04:42:00

1.一个简单登录grailsDemo

首先创建domian object
class User{   Long id      String email   Stringpassword   //重写toSting()方法      //email是grooy语法      String toString(){"$email"}         //定义约束      def   constraints=   {          email(email:true)   }}

然后我们在grails-app/conf写下这些代码,它的意思是在系统启动时候创建两个User对象。
class   ApplicationBootStrap{   def init={ servletContext->          new User(email:"chenwentaokl@yahoo.com.cn",password:"pass").save()   }      def desroy={   }}

接着我们创建一个Plant对象,该类的toString(),equals,hashCode()和java上是一样的
class Plant{      .      .   //属性变量定义    defconstraints={          //初始化一个select         annual(inList:["a","b"])   }   Stirng toString(){"${this.class.name}:${id}"}   //*equels方法重写    boolean equeals(other){      if(other?.is(this)) return true         if(!(other instaceof Plant)) return false         if(!id||!other?.id||id=other?.id) return false                  return true             }    int hashCode(){      int hashcode=0      hash code=29*(hashcode+(!id?0:id...))    }}

我们来编写PlantController
class PlantController{       //类似一个前置通知,在执行所有此类方法前将调用      //&是一个引用或指针,except表示除了index,list.etc.等方法将不执行前置      //c,u,d这些方法讲进行前置通知      def beforeInterceptor=]      defscaffold=true      def checkUser(){          //可以看到这里直接使用session         if(!session.user){             //我们把控制权交个UserController的login方法             redirect(controller:'user',action:'login')             return false          }      }}

在看看UserContoller
class UserController{         //自定义一个登录方法   def doLogin={         //params貌似一个Map,里面存储着各种参数         def user=User.findWhere(email:params['email'],password:params['password'])         session.user=user         if(user)                  redirect..         else               ...    }}
页: [1]
查看完整版本: 1.一个简单登录grailsDemo