如何在grails中将一个参数值从管理控制器传递到报表控制器

如何在grails中将一个参数值从管理控制器传递到报表控制器,grails,Grails,我想将餐饮服务商值从管理员控制器传递到报表控制器 getreports.gsp <g:form url="[admin:catererInstance, action:'save']" > <div value="${adminInstance.caterer}"></div> </g:form> <g:form url="[admin:catererInstance, action:'save']" > // Clic

我想将餐饮服务商值从管理员控制器传递到报表控制器

getreports.gsp

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

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

</g:form>
<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>

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


虽然这应该可以做到,但我强烈建议您不要在此处使用
重定向。最好创建一个新的服务,可能是
ReportsService
,并将您的
\u getReports()
方法移到那里。理想情况下,服务应该处理您的所有业务逻辑,而不是控制器。

我已经修改了您的代码,并简单地解释了如何从getreports.gsp将值传递给控制器

getreports.gsp

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

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

</g:form>
<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>

请看@Abs,我认为您链接的问题与此无关。这个问题是关于直接调用一个方法并传递参数,标准的Groovy东西。这个问题是关于传递HTTP servlet请求参数的。它们都使用术语“参数”,但实际上不是同一件事。“你说你有两个控制器,但你的代码只在ReportsController中显示这两个方法。如果是这样,你应该使用forward而不是redirect”-这不是一个很好的建议<代码>重定向
和<代码>转发是两种不同的东西,它们的行为不同,所涉及的控制器操作是否在同一个控制器中并不重要。我完全同意你的看法。对不起,我错了!!