2015-08-17 47 views
2

我剛剛啓動了用於編寫XML文件的JAX-B,我可以從java對象創建XML文件並將該文件保存到本地路徑中。我是通過提供路徑從java類中的一個簡單的主要方法做到這一點。如何使用JAXB從Servlet/JSP創建XML文件?

public static void main(String ...s){ 
    JAXBContext jaxbcntxtobject = JAXBContext.newInstance(Student.class); 
    Marshaller marshallerObject = jaxbcntxtobject.createMarshaller(); 
    marshallerObject.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true); 

    Student s1 = new Student(1, "Chanky Mallick","MCA"); 
    marshallerObject.marshal(s1, new FileOutputStream("e://StudentList.xml")); 
} 

但我的主要目的是通過servlet或jsp來完成,所以它可以作爲下載保存到客戶端機器中。

我怎麼能達到這個..?

回答

3

您需要:

  1. 寫在你的迴應,而不是你的ServletOutputStreamFileOutputStream(JAXB將讓您指定的OutputStream的任何子類)
  2. 設定的返回類型爲XML例如response.setContentType("text/xml")

你或許應該設置內容配置,使得瀏覽器知道的內容下載的文件,並呈現給用戶一個選項,將其保存在給定名義例如

response.setHeader("Content-Disposition", "filename=" + filename); 
+0

感謝您的幫助!我修改了我的代碼,就像你說的那樣.. response.setContentType(「text/xml」); response.setHeader(「Content-Disposition」,「filename =」+「Employee.xml」); ServletOutputStream out = response.getOutputStream(); marshallerObject.marshal(e1,out);但是現在xml文件以正確的格式顯示在瀏覽器中,但沒有下載... – Chanky