|
|
|
Файлы из папки resources
|
|||
|---|---|---|---|
|
#18+
GeronemoС вопросом домтупа к файлам я разобрался. Теперь у меня такой вопрос. Как представить это юзеру. Сейчас у меня идет сохранение в папку Temp, но я так понимаю, что сохранение будет на сервер, а мне надо представить файл юзеру. И это из обычного класса, а не из сервлета. Судя по постановке задачи можно юзеру и на дискете принести. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2014, 11:09 |
|
||
|
Файлы из папки resources
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, А как вы хотите, чтобы я задачу поставил. 1. Есть клиент. 2. Он заходит по некому URL на сайт. Происходит аутентификация, он идет на некую страницу, которая от отображает какие-то данные (например список транзакций за последний месяц). Он изучает этот список и решает скачать его себе на комп. 3. На сервере запускается процесс формирования файла, он находится в памяти, либо его можно временно сохранить где-нибудь в темпе, не суть важно. 4. Теперь с сервера клиент должен этот файл как-то получить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2014, 12:15 |
|
||
|
Файлы из папки resources
|
|||
|---|---|---|---|
|
#18+
GeronemoBlazkowicz, А как вы хотите, чтобы я задачу поставил. 1. Есть клиент. 2. Он заходит по некому URL на сайт. Происходит аутентификация, он идет на некую страницу, которая от отображает какие-то данные (например список транзакций за последний месяц). Он изучает этот список и решает скачать его себе на комп. 3. На сервере запускается процесс формирования файла, он находится в памяти, либо его можно временно сохранить где-нибудь в темпе, не суть важно. 4. Теперь с сервера клиент должен этот файл как-то получить. Ну, значит мы таки говорим о передаче файла из сервера в браузер по HTTP. Тогда как объяснить следующее GeronemoИ это из обычного класса, а не из сервлета. Это требование откуда нарисовалось? Почему "не из сервлета"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2014, 12:19 |
|
||
|
Файлы из папки resources
|
|||
|---|---|---|---|
|
#18+
Geronemo3. На сервере запускается процесс формирования файла, он находится в памяти, либо его можно временно сохранить где-нибудь в темпе, не суть важно. 4. Теперь с сервера клиент должен этот файл как-то получить. Чтобы что-то запустить на сервере нужен как раз Сервлет. Он может (и уже через обычный класс - если так надо) Понять что от него хочет пользователь и сделать это. В данном случае Пользователь должен высказать свое желание программе клиенту. 1. Программа клиент отправляет запрос Сервлету и говорит - начни готовить файлы. 2. Тем или иным способом узнает что Файлы готовы. Заодно узнает по какому URL их можно скачать. 3. И скачивает. Сервлет из пп.1-2 (или сервлеты) кладут файлы куда-то. И придумывают URL по которому эти файлы будут доступны. Заодно объясняют системе авторизации, почему они должны быть доступны именно этому пользователю. В кратце как-то так. А вместо имени файла хорошо подходит GUID и в подпапку с именем сессии (правда не всегда). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2014, 12:23 |
|
||
|
Файлы из папки resources
|
|||
|---|---|---|---|
|
#18+
Разобрался с вопросом предоставления файла пользователю с помощью AbstractResource. Теперь есть такой вопрос. Не помню, писал ли я выше, но задача, которую я решаю это экспорт данных в Excel файл Для этого мне надо было прочитать файл-шаблон, запихать туда данные и выдать файл пользователю. Все заработало, но осталось 2 хвоста. 1. Одно из значений таблицы имеет тип BigDecimal (именно таокео поле имеет Dto из базы данных). И при вставлении данных эта колонка остается пустой. Я в файле шаблона выставлял тип колонки - число, не помогло. Также я делал класс, аналогичный ДТО, с единственным изменением - String вместо BigDecimal. И когда я записываю в файл Список этого типа, то там вообще ничего не записывается, остается пустота. 2. Некоторые из данных полей являются довольно длинными и было бы неплохо, если бы текст разбивался на несколько строчек и высота ячейки менялась бы под это дело. У меня текст разбивается на несколько строчек, но высота ячейки увеличивается только у 1-й строчки. Остальные остаются той же высоты и надо заглядывать в каждое поле, чтобы посмотреть полный текст. Неудобно для конечного пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 11:31 |
|
||
|
Файлы из папки resources
|
|||
|---|---|---|---|
|
#18+
Geronemo, а как вставляете данные в шаблон? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 13:05 |
|
||
|
Файлы из папки resources
|
|||
|---|---|---|---|
|
#18+
Geronemoпрочитать файл-шаблон, запихать туда данные и выдать файл пользователю. в шаблоне шапка и одна полностью отформатированная строка. При вставке перед каждой строкой - копируйте строку в Excell. Соответственно, все 500 строк будут с форматом - Переброска строк и автовысота ячеек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2014, 13:42 |
|
||
|
Файлы из папки resources
|
|||
|---|---|---|---|
|
#18+
DDiverGeronemo, а как вставляете данные в шаблон? Map beans = new HashMap(); SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy"); beans.put("name", "Отчет " + sdf.format(date1) + " по " + sdf.format(date2)); beans.put("report", list); InputStream inputStream = new FileInputStream(filename); // файл шаблона XLSTransformer transformer = new XLSTransformer(); org.apache.poi.ss.usermodel.Workbook workbook = null; workbook = transformer.transformXLS(InputStream, beans); Вот тут описано, как чего делать http://jxls.sourceforge.net/reference/collections.html Делаее workbook отсылается в класс, который предоставляет пользователю возможность сохранить его у себя на диске. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2014, 15:14 |
|
||
|
Файлы из папки resources
|
|||
|---|---|---|---|
|
#18+
Petro123Geronemoпрочитать файл-шаблон, запихать туда данные и выдать файл пользователю. в шаблоне шапка и одна полностью отформатированная строка. При вставке перед каждой строкой - копируйте строку в Excell. Соответственно, все 500 строк будут с форматом - Переброска строк и автовысота ячеек. Это решило бы проблему, немного коряво, но все же. Только один вопрос - как копировать строку из java ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2014, 15:17 |
|
||
|
Файлы из папки resources
|
|||
|---|---|---|---|
|
#18+
Geronemo, Этот вариант с самим Excell (OLE) Самый гибкий отчёт с подкрашиванием, итогами и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2014, 15:31 |
|
||
|
Файлы из папки resources
|
|||
|---|---|---|---|
|
#18+
В общем, все заработало. Пришлось поизвращаться вот таким способом. Sheet shууе = workbook.getSheetAt(0); for (int i = 0; i < list.size(); i++) { ObjectType obj = list.get(i); Row row = sheet.createRow(i + 3); Cell cell = row.createCell(0); cell.setCellValue(obj .getName()); ....................... } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2014, 12:38 |
|
||
|
Файлы из папки resources
|
|||
|---|---|---|---|
|
#18+
Есть еще один вопрос. Уже не про Excel, а вообще в общем виде. Допустим у нас есть некий url, по которому находится новый файл. Как из Java приложения скачать его. Причем не на диск в файл, а чтобы пользователю появилось сообщение браузера - Открыть файл/Сохранить (Пользователь изначально сидит в браузере и мы динамически генерим ему ссылки). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2015, 15:00 |
|
||
|
Файлы из папки resources
|
|||
|---|---|---|---|
|
#18+
GeronemoЕсть еще один вопрос. Уже не про Excel, а вообще в общем виде. Допустим у нас есть некий url, по которому находится новый файл. Как из Java приложения скачать его. Причем не на диск в файл, а чтобы пользователю появилось сообщение браузера - Открыть файл/Сохранить (Пользователь изначально сидит в браузере и мы динамически генерим ему ссылки). Код: java 1. 2. 3. 4. 5. 6. Правильные значения для Excel и Content-Disposition Attachment - нагуглить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2015, 15:04 |
|
||
|
Файлы из папки resources
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, а чему у нас равно HttpServletResponse r; Потому как у меня даже не компилируется такой, очевидный NPE Кстати, у меня было в каком-то проекте Наследование от AbstractResource, сейчас изучаю, как это можно тут прикрутить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2015, 12:19 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38804646&tid=2125922]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 369ms |

| 0 / 0 |
