zoukankan      html  css  js  c++  java
  • Controller

    Summary

    • 官方文档:http://docs.grails.org/latest/ref/Controllers/respond.html
    • 为当前 respond 语句所在 Action 所对应的页面返回数据和对象。
    • 可以响应另外一个 GSP 页面,但是 URL 还是当前的 Action,不会执行另外的 GSP 页面对应的 Action。
    • respond 必须返回一个“对象”,然后加上其他的model等。
    • 有的时候需要使用 return 语句。
    • 根据“内容协商”配置的内容进行响应自动适应类型。
    案例 参数类型 约定的前端变量
    respond Book.list() java.util.List bookList
    respond Book.get(1) example.Book book
    respond( [1,2] ) java.util.List integerList
    respond( [1,2] as Set ) java.util.Set integerSet
    respond( [1,2] as Integer[] ) Integer[] integerArray

    Demo

    • 默认的 show 页面,传递一个对象,和一组其他对象。
    • 可以选择最合适的类型进行响应
    def show(Long id)
    {
        def layout = Layout.get(id)
        def layoutPanel = LayoutPanel.findAllByLayout(layout, [sort: 'displayOrder', order: 'asc'])
        respond layout, model: [layoutPanel: layoutPanel] // 默认的 show 页面,传递一个对象,和一组其他对象。
    }
    // 选择最合适的类型并转换格式进行响应
    respond Book.get(1), formats: ['xml', 'json']

    Demo

    • @Transactional + transactionStatus.setRollbackOnly() + return 保障对象异常的时候不保存数据。
    • respond layoutButton.errors, view: 'create', params: params 保障返回错误信息,传回必备的参数。
    • flash.message 保障存储成功后页面的提示信息。
    @Transactional
    def save(LayoutButton layoutButton)
    {
        if (layoutButton == null)
        {
            transactionStatus.setRollbackOnly()
            notFound()
            return
        }
    
        if (layoutButton.hasErrors())
        {
            transactionStatus.setRollbackOnly()
            respond layoutButton.errors, view: 'create', params: params
            return
        }
    
        layoutButton.save(flush: true)
    
        request.withFormat {
            form multipartForm {
                flash.message = message(code: 'default.created.message', args: [message(code: 'layoutButton.label', default: 'LayoutButton'), layoutButton.id])
                redirect url: params['targetUri']
            }
            '*' { respond layoutButton, [status: CREATED] }
        }
    }
    

    参数

    • object 必选参数:需要响应的对象,这个是必须有的!
    • arguments 可选的参数

    可选的参数

    • view - The view to use in case of HTML rendering(相应的页面)
    • model - The model to use in case of HTML rendering(可以相应各种类型的数据)
    • status - The response status(相应状态)
    • formats - A list of formats to respond with
    • includes - Properties to include if rendering with the converters API
    • excludes - Properties to exclude if rendering with the converters API
  • 相关阅读:
    java-日期转换
    java-Timestamp
    java-判断年份是不是闰年
    Java中Date与String的相互转换
    ORA-01830
    js数组合并
    js清空子节点
    私钥密码
    图片基本样式
    XMLHttpRequest: 网络错误 0x2ee4, 由于出现错误 00002ee4 而导致此项操作无法完成
  • 原文地址:https://www.cnblogs.com/duchaoqun/p/11834090.html
Copyright © 2011-2022 走看看