struts2 与 xml 的问题 急~~~~~~
我想从jsp中得到数据(已得到)传入action中,在action中把得到的数据保存到xml中,但是在添加的类中 执行到Document doc = db.parse("abc.xml");就自动跳出了。请问一下这个问题怎么解决??
------解决方案--------------------
看看db.parse("abc.xml")中的实现。你用jdom还是dom4j?
------解决方案--------------------
首先,需要建立一个解析器工厂
	public static Document getDOM()throws Exception
	{
		//建立一个解析器工厂
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
		//从工厂里获得具体的DOM解析器
		DocumentBuilder db = dbf.newDocumentBuilder();		
		//从文件中获取DOM对象
		Document dom = db.parse(DOM_FILE_PATH);
		return dom;
	}
	/**
	 * 写DOM对象到文件
	 * @param dom
	 * @throws Exception
	 */
	public static void writeDOM(Document dom) throws Exception
	{
		File domFile = new File(DOM_FILE_PATH);
		//先删除原文件
		domFile.delete();		
		//同样应用了工厂模式
		TransformerFactory tFactory =TransformerFactory.newInstance();
		Transformer transformer = tFactory.newTransformer();
		//源
		DOMSource source = new DOMSource(dom);
		//目的
		StreamResult result = new StreamResult(domFile);
		//输出
		transformer.transform(source, result);
	}
	/**
	 * 增加新用户
	 * @param newUser
	 */
	public static void addUser(User newUser)throws Exception
	{
		Document dom = getDOM();		
		//新检查帐号是否重名-------------------------------
		//获得以"login"命名的节点列表
		NodeList logins = dom.getElementsByTagName("login");		
		for (int i = 0; i < logins.getLength(); i++)
		{
			Node loginNode = logins.item(i);
			//节点内容相同
			if (loginNode.getTextContent().equals(newUser.getLogin()))
			{
				throw new Exception("增加新用户失败(帐号重名), login=" + newUser.getLogin());
			}
		}		
		//获得以"users"命名的节点列表
		NodeList nl = dom.getElementsByTagName("users");
		//根节点
		Node rootNode = nl.item(0);		
		//创建1个用户节点
		Element userElement = dom.createElement("user");		
		//login
		Element loginElement = dom.createElement("login");
		loginElement.setTextContent(newUser.getLogin());
		//passwd
		Element passwdElement = dom.createElement("passwd");
		passwdElement.setTextContent(newUser.getPasswd());
		//userName
		Element userNameElement = dom.createElement("userName");
		userNameElement.setTextContent(newUser.getUserName());
		//age
		Element ageElement = dom.createElement("age");
		ageElement.setTextContent("" + newUser.getAge());
		//sex
		Element sexElement = dom.createElement("sex");
		sexElement.setTextContent(newUser.isGirl() ? "female" : "male");		
		//在user节点中增加子节点
		userElement.appendChild(loginElement);
		userElement.appendChild(passwdElement);
		userElement.appendChild(userNameElement);
		userElement.appendChild(ageElement);
		userElement.appendChild(sexElement);
		//在users节点中增加子节点user
		rootNode.appendChild(userElement);		
		//写入文件
		writeDOM(dom);		
	}