近期发现网上grails由于用的人不算很是多,相关的资料也不是那么easy找到,随着学习的深刻打算把个人学习心得按期分享出来。也给学习grails的同胞一个偷懒的机会,个人原则是以最简洁的方式学会Grails,此次分享的东西是grials中比較常常使用的Render、Session、重定向的使用html
1.重定向java
简要的看了下Grail的文档,发现里面貌似没有server端跳转这种东西,仅仅找到了一个client跳转。使用方法也比較简单就redirect(配置),对于里面的配置也比較灵活就像如下这个样例session
redirect(uri:"book/list") redirect(url:"http://www.blogjava.net/BlueSUN") redirect(action:"show") redirect(controller:"book",action:"list") redirect(action:"show",id:4, params:[author:"Stephen King"])
//使用uri的方式重定向 def useURI={ redirect(uri:"/login/toLoginUI",params:["state":"ToLogin"]) }
redirect(controller:"Login",action:"loginSuccess",params:["state":"Success"])
2.render的使用学习
render相似java里的PrintWriter,基本上PrintWriter能实现的功能render也可以实现url
3.request和session的使用.net
grails里使用request和session和servlet差点儿相同,但是request用的概率较小,在grails的控制器里通常使用params取得请求的所有參数。这里着重学习session的使用code
//保存username到session session.setAttribute("UserId",u.getUserid()) //重定向到登陆成功界面 redirect(controller:"Login",action:"loginSuccess",params:["state":"Success"])
界面上要取出session里的东西也和曾经同样,例如如下所看到的:server
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>登陆成功页面</title> </head> <body> <% String userId=(String)session.getAttribute("UserId"); %> 登陆成功,你的username是<%=userId%>,状态是:<%=request.getParameter("state")%> </body> </html>
天机功能以后UserController的check方法就可以改为如下的这样样子了htm
def check = { //request的使用(grails里通常用params) println request.getParameter("userid") //params封装了请求里的全部參数,数据类型类似map def u= User.findByUserid(params.userid) if(u){ if(u.getUserpwd()==params.userpwd){ //保存username到session session.setAttribute("UserId",u.getUserid()) //重定向到登陆成功界面 redirect(controller:"Login",action:"loginSuccess",params:["state":"Success"]) }else{ redirect(controller:"Login",action:"toLoginUI") } }else{ render "username不存在" } }
是否是很是easy呢,下次将分享grails的一对多操做blog