首先定义模型,采用xml格式。一下是测试代码。
package com.jc.bus.workflow.web; import java.io.File; import java.io.FileWriter; import java.io.Writer; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; @Controller public class WorkFlowController { @RequestMapping(value = {"setting"}) public ModelAndView fetchSetting (){ ModelAndView mav = new ModelAndView("/workflow/setting"); return mav; } @RequestMapping(value = {"create"}) @ResponseBody public Map<String, Object> createWorkflow (HttpServletRequest request, String workflowName){ Map<String, Object> retmsg = new HashMap<String, Object>(); String path = request.getServletContext().getRealPath("/"); String filePath = path.concat("workflow/").concat(workflowName).concat(".xml"); File xmlFile = new File(filePath); try{ Writer fw = new FileWriter(xmlFile); fw.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<root></root>"); fw.flush(); fw.close(); retmsg.put("success", true); }catch (Exception e){ retmsg.put("success", false); retmsg.put("msg", e.toString()); } return retmsg; } @RequestMapping(value = {"add"}) @ResponseBody public Map<String, Object> addNode (HttpServletRequest request, String workflowName, String nodeName, String parent){ Map<String, Object> retmsg = new HashMap<String, Object>(); String path = request.getServletContext().getRealPath("/"); String filePath = path.concat("workflow/").concat(workflowName).concat(".xml"); try{ File inputFile = new File(filePath); System.out.println(inputFile.exists()); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(inputFile); doc.getDocumentElement().normalize(); NodeList nList = doc.getElementsByTagName("root"); Node root = nList.item(0); Element newChild = doc.createElement(nodeName); newChild.setAttribute("node1", "gogogo"); root.appendChild(newChild); // write the content into xml file TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(inputFile); transformer.transform(source, result); }catch (Exception e){ retmsg.put("success", false); retmsg.put("msg", e.toString()); } return retmsg; } }