Grails重定向以及Render、Session的使用

最近发现网上grails由于用的人不算很多,相关的资料也不是那么容易找到,随着学习的深入打算把我的学习心得定期分享出来。也给学习grails的同胞一个偷懒的机会,我的原则是以最简洁的方式学会Grails,这次分享的东西是grials中比较常用的Render、Session、重定向的使用


1.重定向

简要的看了下Grail的文档,发现里面貌似没有服务器端跳转这样的东西,只找到了一个客户端跳转。用法也比较简单就redirect(配置),对于里面的配置也比较灵活就像下面这个例子

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也可以实现


3.request和session的使用

grails里使用request和session和servlet差不多,但是request用的几率较小,在grails的控制器里一般使用params取得请求的所有参数。这里着重学习session的使用


  //保存用户名到session
   session.setAttribute("UserId",u.getUserid())
  //重定向到登录成功界面
   redirect(controller:"Login",action:"loginSuccess",params:["state":"Success"])


界面上要取出session里的东西也和以前一样,如下所示:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录成功页面</title>
</head>
<body>
<%
 String userId=(String)session.getAttribute("UserId");
%>
登录成功,你的用户名是<%=userId%>,状态是:<%=request.getParameter("state")%>
</body>
</html>

到这里就可以丰富前几天的登录程序了,现在为登录增加一个功能:如果登录成功,则重定向到成功页面并显示登录的用户名,如果登录失败则返回到登录界面

天机功能之后UserController的check方法就可以改成下面的这样样子了


def check = {
       //request的使用(grails里一般用params)
       println request.getParameter("userid")
       //params封装了请求里的全部参数,数据类型类似map
       def u= User.findByUserid(params.userid)
        if(u){
            if(u.getUserpwd()==params.userpwd){
                  //保存用户名到session
                 session.setAttribute("UserId",u.getUserid())
                 //重定向到登录成功界面
                 redirect(controller:"Login",action:"loginSuccess",params:["state":"Success"])
            }else{

                redirect(controller:"Login",action:"toLoginUI")
            }
        }else{
            render "用户名不存在"
        }

    }

最后来看看登录成功后显示的界面:


是不是很简单呢,下次将分享grails的一对多操作

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值