【问题标题】:How can I create XML files from Servlets using JAXB?如何使用 JAXB 从 Servlet 创建 XML 文件?
【发布时间】:2015-11-09 23:37:53
【问题描述】:

我刚刚启动 JAX-B 来编写 XML 文件,我能够从 java 对象创建 XML 文件并将该文件保存到本地路径中。我通过提供路径从 java 类中的一个简单 main 方法执行此操作。

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 中执行此操作,以便可以将其保存到客户端机器中作为下载。

我怎样才能做到这一点?

【问题讨论】:

    标签: java xml jakarta-ee servlets jaxb


    【解决方案1】:

    你需要:

    1. 在您的回复中写入ServletOutputStream 而不是您的FileOutputStream(JAXB 将允许您指定OutputStream 的任何子类)
    2. 将返回的类型设置为 XML,例如response.setContentType("text/xml")

    您可能应该设置内容配置,以便浏览器知道将内容下载为文件并为用户提供以给定名称保存它的选项,例如

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

    【讨论】:

    • 感谢您的帮助!!我按照你说的修改了我的代码.. response.setContentType("text/xml"); response.setHeader("内容配置", "filename=" + "Employee.xml" ); ServletOutputStream out = response.getOutputStream(); marshallerObject.marshal(e1, out);但是现在 xml 文件以正确的格式显示在浏览器中,但没有被下载...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多