我想使用 grails 导出插件将我的域类导出到 xls 和 csv 文件。
在名为front.gsp的主布局中,我这样做了:
<!DOCTYPE html>
<html lang="en">
<head>
...
<g:layoutHead />
</head>
<body>
<sec:ifLoggedIn>
<r:require module="export"/>
<export:formats formats="['csv', 'excel', 'ods', 'pdf', 'rtf', 'xml']" action="exportTest" />
...
<g:layoutBody />
<r:layoutResources/>
<script type="text/javascript" src="${resource(dir: 'js', file: 'jquery.min.js')}"></script>
<script type="text/javascript" src="${resource(dir: 'js', file: 'bootstrap.min.js')}"></script>
<script type="text/javascript" src="${resource(dir: 'js', file: 'application.js')}"></script>
</body>
</html>
在我的DomainClassController.groovy中,我这样做了:
def exportTest() {
if(!params.max) params.max = 10
if(params?.format && params.format != "html"){
response.contentType = grailsApplication.config.grails.mime.types[params.format] response.setHeader("Content-disposition", "attachment; filename=contacts.${params.extension}")
exportService.export(
params.format,
response.outputStream,
ContactDTO.list(params),
[:],
[:])
[contactDTOInstanceList: ContactDTO.list( params )]
}
}
我还在控制器的视图文件夹中创建了一个名为exportTest.gsp的视图,只是一个空文件来临时解决 404 问题。
我没有任何错误消息,但是当我单击任何导出按钮时,我正在重定向到我的页面exportTest.gsp并且没有下载文件
如何使用 grails 导出插件获取下载的文件?我遵循用户指南,没有任何错误(已解决)但没有创建文件?
谢谢阅读 !
斯奈特
编辑:我只是看到,当点击导出链接时,生成的 url 是:
http://localhost:8080/site/controller/action?format=excel&extension=xls
但奇怪的是,在我的控制器中制作“println params”时,输出是:
[extension:xls, action:exportTest, format:null, controller:contactDTO, max:10]
params.format 为 null 但设置为 url ?!!!
像这样更改网址(并调整控制器代码):
http://localhost:8080/site/controller/action?formatD=excel&extension=xls
给我以下错误:
Firefox ne peut trouver le fichier à l'adresse http://localhost:8080/site/controller/action?formatd=excel&extension=xls.