近期發現網上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