Вы смотрели на Jasper Plugin? Похоже, инструменты уже созданы для вас.Что касается запроса у пользователя местоположения загрузки, браузер имеет некоторый контроллер для получения файлов с веб-страницы.Является ли вашей реальной проблемой то, что вы хотите контролировать местоположение загрузки?
[ОБНОВЛЕНИЕ]
Использование местоположения 'c: \' на вашем сервере не клиента ивот почему он не загружается.
попробуйте что-то вроде этого ...
def controllerMethod = {
def temp_file = File.createTempFile("jasperReport",".pdf") //<-- you don't have to use a temp file but don't forget to delete them off the server at some point.
JasperExportManager.exportReportToPdfFile(jasperPrint, temp_file.absolutePath));
response.setContentType("application/pdf") //<-- you'll have to handle this dynamically at some point
response.setHeader("Content-disposition", "attachment;filename=${temp_file.getName()}")
response.outputStream << temp_file.newInputStream() //<-- binary stream copy to client
}
Я не проверял это, и есть более эффективные способы обработки файлов и потоков, ноЯ думаю, вы получите общее представление.