• Grails项目示例


    第一个例子”hello world”

    3.1 Grails基本命令

    1. 创建一个新的应用: grails create-app $projectname
    创建一个新的GRAILS项目,进入GRAILS_HOME:grails create-app $projectname
    以下的命令要进入$projectname,才能执行

    2. 创建域类:grails create-domain-class $domainname

    3. 生成基本Web应用程序:grails generate-all $domainname

    注意:由于bug-245,Grails 0.2.1不能生成控制器。您必须手动生成控制器,其方法是对每个域类使用generate-controller 命令

    grails generate-controller $domainname

    4. 创建服务:grails create-service $servciename

    5. 创建Controller:grails create-controller $controllername

    6. 打包:cd $projectname;grails war

    3.2 HelloWorld例子

    3.2.1 创建HelloWorld项目

    进入$GRAILS_HOME,执行grails create-app HelloWorld,系统生成的目录如下:

    %PROJECT_HOME%
       + grails-app
           + conf                 ---> 存放一些配置信息,比如数据源
           + controllers          ---> 存放控制器
           + domain               ---> 存放域对象(domain class)
           + i18n                 ---> 存放一些i18n相关的内容
           + services             ---> 存放服务组件
           + taglib               ---> 存放标签库
           + views                ---> 存放视图组件
           + layouts              ---> 存放布局组件
       + lib
       + spring                    ---> spring配置信息(可选)
       + hibernate                 ---> 配置hibernate配置信息
       + war
           + WEB-INF

    3.2.2 配置数据源

    这里使用的是grails自带的HSQLDB内存数据库,配置文件为DevelopmentDataSource.groovy,内容如下:

    class DevelopmentDataSource {

    boolean pooling = true

    String dbCreate = "create-drop" // one of 'create', 'create-drop','update'

    String url = "jdbc:hsqldb:mem:devDB"

    String driverClassName = "org.hsqldb.jdbcDriver"

    String username = "sa"

    String password = ""

    }

    3.2.3 创建域类,控制器,视图

    域类就是对应数据库的表的,Hello域就是对应到数据库的Hello表

    进入HelloWorld目录后

    Ø grails create-domain-class Hello (创建Hello域类)

    编辑这个域,以适应自己的需求

    class Hello {

    Long id

    String name

    String saywhat

    }

    Ø grails generate-all Hello (创建Hello控制器和视图view)

    Ø grails run-app (运行web服务)

    默认是8080端口,指定端口grails -Dserver.port=80 run-app

    在IE里输入http://127.0.0.1:8080

    到此一个有增,删,改的web服务弄好了,系统给你做了大部分工作.

    3.3 使用服务

    Grails里的服务类似于java的jar包,是封装好的接口.

    3.3.1 创建服务:grails create-service Hello

    修改HelloWorld/grails-app/services/LoginService.groovy的内容为:

    class HelloService {

    boolean transactional = true

    def sayHello(String name){

    return name + "say: hello world!!!"

    }

    def serviceMethod() {

    // TODO

    }

    }

    3.3.2 修改controller

    class HelloController {

    HelloService helloService //定义服务

    def index = { redirect(action:testhello,params:params) } //默认的action为testhello

    def testhello = {//定义一个名为testhello的action

    //从域类(就是数据库表)里查询数据

    def hello = Hello.executeQuery("select id,name,saywhat from Hello")

    def helloList = new ArrayList()

    for(ehello in hello){

    helloList.add(helloService.sayHello(ehello[1]))

    }

    //render到hello的视图就是hello.gsp,参数是model里的左边的helloList,右边的helloList是”def helloList”

    render(view:'hello',model:[helloList:helloList])

    }

    ……

    }

    3.3.3 添加hello.gsp

    在views/hello目录下添加hello.gsp,代码如下:

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

    <meta name="layout" content="main" />

    <title>Show Hello</title>

    </head>

    <body>

    <div class="body">

    <g:each in="${helloList}" var="varHelloList">

    <h1>${varHelloList}</h1>

    </g:each>

    </div>

    </body>

    </html>

    Web效果图:

    4 部署服务

    1. 到工程目录下,执行:grails war

    2. 把*.war文件放在apache的webapp下,启动apache就可以了

  • 相关阅读:
    java客户端集成RocketMq
    java8常见流式操作
    Spring源码架构以及编译
    Rocket消息存储原理
    由二叉树中序和先序遍历求二叉树的结构
    10.14重写ENqUEUE和DEQUEUE,使之能处理队列的下溢和上溢。
    10.12 说明如何用一个数组A[1..n]来实现两个栈,使得两个栈中的元素总数不到n时,两者都不会发生上溢,注意PUSH和POP操作的时间应为O(1)。
    用类模板实现对任何类型的数据进行堆栈进行存取操作。
    java struts2+urlrewrite 配置404错误
    c++ sizeof 及别名定义2种示例
  • 原文地址:https://www.cnblogs.com/liuyou/p/2230626.html
Copyright © 2020-2023  润新知