Запишите XML-документ в поток ответов браузера и заставьте браузер отображать диалоговое окно «Сохранить как».
Рассмотреть следующий метод download ()
:
HttpServletResponse response = getResponse();
BufferedWriter bw = new BufferedWriter( new OutputStreamWriter(
response.getOutputStream() ) );
String filename = "domain.xml";
String mimeType = new MimetypesFileTypeMap().getContentType( filename );
// Prints "application/octet-stream"
System.out.println( "mimeType: " + mimeType );
// response.setContentType( "text/xml;charset=UTF-8" );
response.setContentType( mimeType );
response.setHeader( "Content-Disposition", "attachment;filename="
+ filename );
bw.write( getDomainDocument() );
bw.flush();
bw.close();
В Firefox содержимое XML отображается в окне браузера. В IE 7 содержимое XML не отображается - необходимо просмотреть источник документа. Ни одна из ситуаций не является желаемым результатом.
Веб-страница использует следующий код для кнопки:
Генерируемый XML не начинается с Xml version = "1.0"?>
, а его XML-содержимое выглядит примерно так:
Обратите внимание на следующую строку кода:
response.setHeader( "Content-Disposition", "attachment;filename=" + filename );
Использование
является проблемой; обычный
работает должным образом. Использование
не позволяет
обновлять сообщения об ошибках.
Связанное Сообщение о шве .
Следующие типы MIME не запускают диалоговое окно «Сохранить как»:
«application / octet-stream»
«text / xml»
«text / plain "
Какие изменения вызовут a4j: commandButton
, чтобы вызвать диалоговое окно «Сохранить как», чтобы пользователю было предложено сохранить файл XML (как domain.xml
)?
Спасибо.