Я использую opencsv в своем приложении Grails для экспорта атрибутов из моего доменного класса Person в CSV. Однако я получаю следующую ошибку:
Servlet.service() для сервлета [по умолчанию] в контексте пути [/myapp] выдал исключение [Ошибка обработки запроса; вложенным исключением является org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException: ошибка обработки GroovyPageView: getOutputStream() уже был вызван для этого ответа] с основной причиной Сообщение: getOutputStream() уже был вызван для этого ответа
Из поиска в Интернете я думаю, что ответ может состоять в том, чтобы реализовать какой-то метод responseComplete() где-нибудь для ответа HttpServletResponse. Однако я не уверен, как это сделать. Любые идеи? Вот мой код:
def export = {
def course = Course.get(params.id)
if(course){
def persons = course ? Person.findAllByCourse(course) : []
response.setHeader("Content-disposition",
"attachment; filename=people.csv")
response.contentType = "text/csv"
def out = response.outputStream
out.withWriter { writer ->
String[] properties = new String[3]
def csvWriter = new CSVWriter(writer)
persons.each { person ->
properties[0] = person.firstName
properties[1] = person.lastName
properties[2] = person.email
properties[3] = person.phone
properties[4] = person.address1
properties[5] = person.address2
properties[6] = person.city
properties[7] = person.state
properties[8] = person.zip5
csvWriter.writeNext(properties)
}
csvWriter.flush()
}
}
render
илиredirect
(это вне приведенного выше кода)? - person Jon Burgess   schedule 02.11.2012