<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    asdtiang的博客 感謝blogjava提供的博客交流平臺(tái)
    grails 命令:
    shell
    console   //啟動(dòng)一個(gè)類似groovy 的console,console里可以訪問(wèn)domain.service等。



    controller里的已有變量(自己不常用的記下,其它的查看文檔,例如request,reponse)

    actionName

    Purpose

    Returns the name of the currently executing action.


    controllerName

    Purpose

    Returns the name of the currently executing controller.

    defaultAction

    Purpose

    Allows you to explicitly specify the default action that should be executed if no action is specified in the URI.

    Examples

    class BookController {
    static defaultAction = "list"
    def list = {
    [books:Book.list()]
    }
    }

    grailsApplication

    Purpose

    An instance of the org.codehaus.groovy.grails.commons.GrailsApplication class.

    Examples

    class BookController {
    def list = {
    def bookClass = grailsApplication.classLoader.loadClass("Book")
    [book:bookClass.newInstance()]
    }
    }

    Description

    The GrailsApplication class provides information about the conventions within Grails and access to metadata, config and the ClassLoader






    servletContext

    Purpose

    The servletContext object is an instance of the Servlet API's ServletContext class.

    Examples

    class BookController {
    def doSomething = {
    def input
    try {
    input = servletContext.getResourceAsStream("/WEB-INF/myscript.groovy")
    def result = new GroovyShell().evaluate(input.text)
    render result
    }
    finally {
    input.close()
    }
    

    } }

    Description

    The Servlet API's ServletContext is useful for, amongst other things, storing global application attributes, reading local server resources and establishing information about the servlet container.







    withForm //防止重復(fù)提交表單

    Purpose

    Used to handle duplicate form submissions.

    Examples

    withForm {
    // good request
    }.invalidToken {
    // bad request
    }

    Description

    The withForm method requires the use of the useToken attribute in a form

    <g:form useToken="true" ...>

    Then in your controller code you can use the withForm method to handle valid and invalid requests:

    withForm {
    // good request
    }.invalidToken {
    // bad request
    }





    withFormat

    Purpose

    Used to execute different responses based on the incoming request Accept header, format parameter or URI extension. See content negotiation for more information.

    Examples

    import grails.converters.*
    

    class BookController { def books def list = { this.books = Book.list() withFormat { html bookList:books js { render "alert('hello')" } xml { render books as XML } } } }

    Description

    The withFormat method takes a block within the scope of which you can execute different methods whose names match the content type you want to respond to. For example:

    withFormat {
    html bookList:books
    js { render "alert('hello')" }
    xml { render books as XML }
    }

    Here we invoke three methods called html, js and xml that use mime type names configured in grails-app/conf/Config.groovy (See content negotiation for more information). The call to html accepts a model (a map) which is passed on to the view. Grails will first search for a view called grails-app/views/book/list.html.gsp and if that is not found fallback to grails-app/views/book/list.gsp.

    Note that the order of the types is significant if either the request format is "all" or more than one content type has the same "q" rating in the accept header. In the former case, the first type handler in the block is executed ("html" in the short example above). The latter case is more confusing because it only holds if there is more than one content type with the highest "q" rating for which you have a type handler and you have more than one type handler matching that "q" rating. For example, say the request has "text/html" and "application/xml" with a "q" rating of 1.0, then this code:

    withFormat {
    xml { … }
    html { … }
    }


    天蒼蒼,野茫茫,風(fēng)吹草底見(jiàn)牛羊

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    posts - 80, comments - 24, trackbacks - 0, articles - 32

    Copyright © asdtiang

    asdtiang的博客 PaidMailz
    點(diǎn)擊廣告網(wǎng)賺A(每天4個(gè)廣告,每個(gè)0.0025美元,一個(gè)搜索廣告0.03美元)
    主站蜘蛛池模板: 中文字幕无线码中文字幕免费 | 亚洲AV无码一区二区三区性色| 69视频免费观看l| 亚洲AV无码1区2区久久| 久久免费国产精品一区二区| 亚洲五月综合缴情在线观看| 成人性生交大片免费看好| 亚洲狠狠久久综合一区77777| 成人爽a毛片免费| 中文字幕亚洲第一在线| 无码国产精品一区二区免费I6| 亚洲一区二区三区高清不卡| 浮力影院第一页小视频国产在线观看免费| 亚洲午夜成人精品无码色欲| 免费一级毛片在线播放| 中文字幕在线免费观看视频| 亚洲av永久无码精品网站| 日本免费xxxx| 亚洲真人无码永久在线观看| 免费国产一级特黄久久| a毛片全部播放免费视频完整18| 亚洲人成在线电影| 久久精品网站免费观看| 含羞草国产亚洲精品岁国产精品| 免费国产小视频在线观看| 国产免费人成视频尤勿视频| 亚洲网站在线观看| 午夜一级免费视频| 三上悠亚在线观看免费| 亚洲图片中文字幕| 国产一卡二卡≡卡四卡免费乱码 | 精品国产亚洲一区二区三区在线观看| 亚洲AV无码乱码在线观看| 日韩免费无码一区二区三区 | 亚洲欧美日韩一区二区三区在线| 亚洲成?v人片天堂网无码| 无码日韩精品一区二区免费暖暖| 香蕉大伊亚洲人在线观看| 国产午夜亚洲不卡| 久久久久久国产a免费观看黄色大片 | 午夜亚洲AV日韩AV无码大全|