如何将模型从视图传递到grails中的控制器

时间:2011-06-28 11:56:01

标签: grails

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <meta name="layout" content="main" />         

    </head>
    <body>
        <div class="nav">
            <span class="menuButton"><g:link class="create" action="index">Save</g:link></span>
            <span class="menuButton"><g:link class="create" action="index">Cancel</g:link></span>
            <span class="menuButton"><g:link class="create" action="excelExport">Export To Excel</g:link></span>
        </div>
        <div class="body">
            <div class="message">Parsed Data:</div>
            <g:hasErrors bean="${savedCrInstance}">
            <div class="errors">
                <g:renderErrors bean="${savedCrInstance}" as="list" />
            </div>
            </g:hasErrors>
            <g:form method="post" >
                <input type="hidden" name="id" value="${savedCrInstance?.id}" />
                <input type="hidden" name="version" value="${savedCrInstance?.version}" />
                <g:render template="company" model="['savedCrInstance':savedCrInstance,'customerInquiriesVal':customerInquiriesVal,'balanceStmtInfo':balanceStmtInfo,'incomeStmtInfo':incomeStmtInfo,'listofMeasures':listofMeasures]"/>
            </g:form>
        </div>
    </body>
</html>

上述GSP将解析数据(从PDF)显示给用户。用户可以选择保存,取消并将解析后的数据导出到Excel。

点击Excel导出后,我想将savedCrInstance模型(我从控制器获得)传递给另一个控制器,我将把数据导出到excel,如图所示here

2 个答案:

答案 0 :(得分:1)

您可以将数据作为JSON发布,或者为控制器提供足够的信息以在服务器端重新生成模型数据。

例如,如果它是您要导出的域类,则可以将id传递给控制器​​并让控制器从数据库中获取它。

另一种选择是使用WebFlow实现此工作流,并对模型数据进行流量范围。

答案 1 :(得分:1)

首先,您不需要使用工作簿和文件等的导出功能..如链接Grails: How do I export a grails list to Microsoft Excel?中所指定的那样。

Grails提供了一个易于使用的导出插件。请参阅:http://www.grails.org/plugin/export

此案例涉及向现有控制器添加一个动作类,该动作类将数据导出到excel