zoukankan      html  css  js  c++  java
  • Grails重定向以及Render、Session的使用

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


    1.重定向

    简要的看了下Grail的文档,发现里面貌似没有server端跳转这种东西,仅仅找到了一个client跳转。使用方法也比較简单就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的使用


      //保存username到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");
    %>
    登录成功,你的username是<%=userId%>,状态是:<%=request.getParameter("state")%>
    </body>
    </html>
    

    到这里就能够丰富前几天的登录程序了,如今为登录添加一个功能:假设登录成功,则重定向到成功页面并显示登录的username,假设登录失败则返回到登录界面

    天机功能之后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){
                      //保存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的一对多操作

  • 相关阅读:
    228. Summary Ranges
    324. Wiggle Sort II
    42. Trapping Rain Water
    工作之后
    279. Perfect Squares
    391. Perfect Rectangle
    351. Android Unlock Patterns
    246. Strobogrammatic Number
    [LeetCode] 75. Sort Colors Java
    [Java] 80. Remove Duplicates from Sorted Array II Java
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3826228.html
Copyright © 2011-2022 走看看