Grails学习笔记(1)

本文详细介绍了如何在数据库中实现一对多关系,并通过Action拦截器进行用户验证,同时展示了模版页面、布局和CSS文件的应用。主要内容包括:一对多关系的建立、拦截器的使用、模版页面配置及页面布局元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、建立表之间的一对多关系:

public class Role {

       String rolename;

       String description;

       int role_gid;

       static hasMany=[user:User]; 

 

String toString(){"${this.rolename}"};

       }

class User {

    String username;

    String password;

     ...

Role  role;

static belongsTo=Role;

}

 

 

角色表Role 用户表User建立一对多的关系,hasMany 属性名----类名对

 

toString 为领域类重写有意义的记录标识符

 

belongsTo 标明一个用户必须属于一个角色,建立级联关系

 

 

2ACTION拦截器

 

   拦截进入功能页面的访问,常用于用户登录验证

 

    def beforeInterceptor = [action:this.&checkUser, except: ['userlogin','doLogin']]

def beforeInterceptor = [action:this.&checkUser, only: ['list', 'show']]

 

// checkUser:验证方法名字;  'userlogin''doLogin'...action名字

 

3、模版页面

   命名:_adminmenubar.gsp

位置:grails-app/views

   引用:<g:render template="/adminmenubar" />

 

4、页面布局

    外观样式表  web-app/css

    图片        web-app/images

  公共页面布局模版  grails-app/views/layouts

 

<head>

         .......

        <meta name="layout" content="public" />  //public: 布局模版名字

    </head>

 

Public.Gsp

<html>

    <head>

        <title><g:layoutTitle default="Racetrack" /></title>

        <link rel="stylesheet" 

            href="${createLinkTo(dir:'css',file:'public.css')}">

        </link>

        <g:layoutHead />

    </head>

    <body>

        <table class="contentArea">

            <tr>

                <td>

                    <div class="logo"></div>

                    <g:layoutBody />

                </td>

            </tr>

        </table>

    </body>

</html>

<g:layoutTitle><g:layoutHead ><g:layoutBody >:实际页面内容的占位符

 

比如在运行时,Grails会渲染页面里的<body>标签的内容来代替<g:layoutBody >标签

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值