2015-08-17 46 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