Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как приаттачить xml в runtime в бине jsf 
:(
    Опции темы
VGrinder
Дата 9.3.2011, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 17.9.2009

Репутация: нет
Всего: нет



Здравствуйте. Помогите решить такую проблему:

есть бин, в котором есть такого вида экшн:

public void action() throws IOException {
String myXml = getXml();
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
PrintWriter writer = response.getWriter();
response.setContentType("text/xml");
response.setHeader("Content-Disposition", "attachment; filename=my.xml");
writer.print(myXml);
}

есть страница, на которой следующего вид кнопка:

<h:commandLink id="btn" value="button" action="#{model.action}" target="_blank" >
</h:commandLink>

Экшн отрабатывает и предлагает сохранить файл, что я и делаю. Но проблема в том что в полученном xml присутствует ненужная мне информация:

<html>
<head>
...
</head>
cодержимое моего my.xml
</html>

Можно ли как-нибудь избежать подобной структуры а оставить только my.xml?
PM MAIL   Вверх
MisterCleric
Дата 10.3.2011, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Привет.
Попробуй взять у response OutputStream и записать в него байты твоего XML.

Добавлено через 1 минуту и 7 секунд
Файл сам по себе - это не текст, а набор байт. Вот ты и должен браузеру сказать о том, что ты ему гонишь файл, а не простой response


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
VGrinder
Дата 10.3.2011, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 17.9.2009

Репутация: нет
Всего: нет



MisterCleric, спасибо. Сначала вываливался эксепшн, говоря "servlet response already use stream, writer not possible", но погуглив удалось избавиться от этой проблемы с помощью FacesContext.getCurrentInstance().responseComplete();

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0630 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.