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

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

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

    asdtiang的博客 感謝blogjava提供的博客交流平臺

    grails 學習記--command-controller

    Posted on 2011-04-29 15:00 asdtiang 閱讀(851) 評論(0)  編輯  收藏
    grails 命令:
    shell
    console   //啟動一個類似groovy 的console,console里可以訪問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 //防止重復提交表單

    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 { … }
    }


    天蒼蒼,野茫茫,風吹草底見牛羊

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

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

    Copyright © asdtiang

    asdtiang的博客 PaidMailz
    點擊廣告網賺A(每天4個廣告,每個0.0025美元,一個搜索廣告0.03美元)
    主站蜘蛛池模板: 免费无码精品黄AV电影| 亚洲国产精品久久久久网站| 亚洲国产精品久久久久秋霞影院| 亚洲精品国产高清在线观看| 91精品国产免费| 精品亚洲成a人片在线观看少妇| 你懂的免费在线观看网站| 免费A级毛片无码A∨| 亚洲精品无码mv在线观看网站 | 久久久受www免费人成| 久久久久亚洲爆乳少妇无| 国产精品免费久久久久电影网| 99久久人妻精品免费二区| 亚洲成a人片在线观看中文动漫| 先锋影音资源片午夜在线观看视频免费播放 | 亚洲日韩精品无码专区| 色吊丝永久在线观看最新免费| 亚洲老熟女五十路老熟女bbw| 国产成人免费网站在线观看| 一级毛片免费一级直接观看| 亚洲人JIZZ日本人| 精品国产污污免费网站aⅴ| 亚洲一区二区三区香蕉| 午夜无码A级毛片免费视频| 亚洲美女一区二区三区| 一二三四在线观看免费高清中文在线观看 | 免费一级毛片不卡在线播放| caoporn成人免费公开| 久久久婷婷五月亚洲97号色 | 久久久久免费视频| 亚洲国产精品成人精品小说| 日本免费电影一区| 中文字幕免费在线看线人动作大片 | 皇色在线视频免费网站| 黄色三级三级三级免费看| 亚洲乱码国产一区三区| 午夜国产精品免费观看 | 久久精品亚洲福利| 国产91色综合久久免费分享| 狠狠入ady亚洲精品| 亚洲国产美国国产综合一区二区|