0

我将使用包含开始日期、结束日期等的 JSP 设计前端。最后我必须将这些读入 Java 对象并将其写入 XML 文件。我怎么能做到这一点..请帮助我解决这个要求。

谢谢,纳拉扬

4

2 回答 2

1

您可以使用任何XML Parser.In Jsp 页面获取属性值(开始日期、结束日期等)并使用DOMapi 创建 XML。以下是简单示例。

    DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

    // root elements
    Document doc = docBuilder.newDocument();
    Element rootElement = doc.createElement("company");
    doc.appendChild(rootElement);

    Element startDate= doc.createElement("startDate");
    startDate.appendChild(doc.createTextNode(<your_Value>));
    doc.appendChild(startDate);

    // lastname elements
    Element endtDate= doc.createElement("endtDate");
    endtDate.appendChild(doc.createTextNode(<your_Value>));
    doc.appendChild(endtDate);

   TransformerFactory transformerFactory = TransformerFactory.newInstance();
    Transformer transformer = transformerFactory.newTransformer();
    DOMSource source = new DOMSource(doc);
    StreamResult result = new StreamResult(new File("C:\\file.xml"));

    // Output to console for testing
    // StreamResult result = new StreamResult(System.out);

    transformer.transform(source, result);
于 2012-08-30T11:48:06.013 回答
1

您需要在 JSP 中获取输入并将其传递给 Servlet。然后您可以使用XStream写入 XML。(我假设您在服务器上编写 XML,如果您需要在客户端计算机上编写 XML - 只需将 xstream 包 ii 导入您的 JSP 标头并放入 servlet 代码片段在你的 JSP 中)

<%@ page import="java.io.*,java.util.*, javax.servlet.*, com.thoughtworks.xstream.XStream" %>
<html>
    <head>
         <title>Handle Current Date & Time</title>
    </head>
    <body>
        <center>
            <h1>Display Current Date & Time</h1>
        </center>
        <%
            Date date = new Date();
            // initialize date from input
            // ...pass the date to the servlet
        %>
    </body>
</html>

在 servlet 代码中:

Date date = /* get the date from the request*/
// then do something like this:
XStream xstream = new XStream();
xstream.alias("date", Date.class);
String xml = xstream.toXML(date);
// write the xml string to the file.
于 2012-08-30T11:50:05.267 回答