如何从admin控制器传递一个参数值到grails中的报告控制器

时间:2016-07-18 10:41:33

标签: grails

我想将来自admin控制器的caterer值传递给报告控制器

getreports.gsp

<g:form url="[admin:catererInstance, action:'save']" >

    <div value="${adminInstance.caterer}"></div>

</g:form>

reportscontrooler.groovy

class ReportsController {


    def index() {

        redirect(action: "_getreports", params: params)

    }

    def _getreports(){

        def adminInstance=new Admin(params)

        def adminList=Admin.list().caterer


        render(template:"getreports",model:[adminInstance:adminInstance])

    }

}

2 个答案:

答案 0 :(得分:0)

我修改了你的代码,并简单解释了如何从getreports.gsp

中将值传递给控制器

getreports.gsp

<g:form url="[admin:catererInstance, action:'save']" >
 // Click SEND Button to send value to getreports action
 <g:link class="btn btn-info btn-sm" action="getreports" resource="${adminInstance}">SEND</g:link>

</g:form>

reportscontrooler.groovy

// import your admin class here.
class ReportsController {

def index() {
    redirect(action: "_getreports", params: params)
}

def _getreports(Admin adminInstance){
    // You can get your values Here.
    println "adminInstance: "+adminInstance
   }
}

答案 1 :(得分:-1)

您说您有两个控制器,但您的代码仅显示ReportsController中的两种方法。如果是这种情况,则应使用forward代替redirect。如果您真的打算从ReportsController发出重定向到AdminController,那么您需要在重定向中提供控制器参数。

虽然这应该可以解决问题但我强烈建议你不要在这里使用redirect。更好地创建新服务,可能ReportsService并在那里移动您的_getReports()方法。理想情况下,服务应该处理所有业务逻辑,而不是控制器。