我想使用grails导出插件将我的Domain类可导出到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>
Run Code Online (Sandbox Code Playgroud)
进入我的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 …Run Code Online (Sandbox Code Playgroud) 我对一个奇怪的Grails行为感到疯狂.
我得到一个域类用户:
class User {
String firstName
String token
List roles = [] as List
static constraints = {
}
}
Run Code Online (Sandbox Code Playgroud)
我像这样修改我的BootStrap.groovy来填充5个用户实例:
class BootStrap {
def init = { servletContext ->
switch (Environment.getCurrent()) {
case 'DEVELOPMENT':
def user1 = new User(
id: 1,
firstName: 'Enricot',
token: 'L\'abricot'
)
user1.roles.add('ROLE_USER')
user1.save(failOnError: true)
def user2 = new User(
id: 2,
firstName: 'Arnaud',
token: 'Dauphin')
user2.roles.add('ROLE_USER')
user2.roles.add('PERM_WRITE')
user2.save(failOnError: true)
def user3 = new User(
id: 3,
firstName: 'Magalie',
token: 'La banane')
user3.roles.add('ROLE_USER')
user3.roles.add('PERM_READ') …Run Code Online (Sandbox Code Playgroud)