我想将来自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])
}
}
答案 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()
方法。理想情况下,服务应该处理所有业务逻辑,而不是控制器。