Création du fichier XML en utilisant un formulaire sous une application en Struts 2
	
	
		Bonjour,
je veux créer un fichier xml a partir d'un formulaire jsp en utilisant struts2 
voila le formulaire : 
	Code:
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
   | <%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Customer Form - Struts2 Demo | ViralPatel.net</title>
</head>
 
<body>
<h2>Formulaire d'ajout de Document</h2>
 
<s:form action="document.action" method="post" validate="true">
	<s:textfield name="titre" key="titre" size="20" />
	<s:textfield name="type" key="type" size="20" />
	<s:textfield name="format" key="format" size="20" />
	<s:textfield name="createur" key="createur" size="20" />
	<s:textfield name="dateCreation" key="dateCreation" size="20" />
 
	<s:submit  method="addDocument" value="Ajouter un Document" key="label.add.document" align="center" />
</s:form>
</body>
</html>  | 
 
voila la classe action de ce formulaire : 
	Code:
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
   | package beanAction;
 
import java.io.FileOutputStream;
import java.io.IOException;
 
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
 
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
import org.w3c.dom.Node;
 
import com.opensymphony.xwork2.ActionSupport;
 
public class DocumentAction extends ActionSupport{
 
	private static final long serialVersionUID = 1L;
 
	private String titre;
	private Integer type;
	private String format;
	private String createur;
	private String dateCreateur;
	static Document document;
	 static Element racine;
 
	public String getTitre() {
		return titre;
	}
 
	public void setTitre(String titre) {
		this.titre = titre;
	}
 
	public Integer getType() {
		return type;
	}
 
	public void setType(Integer type) {
		this.type = type;
	}
 
	public String getFormat() {
		return format;
	}
 
	public void setFormat(String format) {
		this.format = format;
	}
 
	public String getCreateur() {
		return createur;
	}
 
	public void setCreateur(String createur) {
		this.createur = createur;
	}
 
	public String getDateCreateur() {
		return dateCreateur;
	}
 
	public void setDateCreateur(String dateCreateur) {
		this.dateCreateur = dateCreateur;
	}
 
 
 
	public String addDocument() {
 
		//Nous allons commencer notre arborescence en créant la racine XML
		   //qui sera ici "personnes".
		   Element racine = new Element("document");
 
		   //On crée un nouveau Document JDOM basé sur la racine que l'on vient de créer
		   document = new Document(racine);
 
 
		      Element titre = new Element("Titre");
		      racine.addContent(titre);
 
		      Element type= new Element("Type");
		      racine.addContent(type);
 
		      Element format = new Element("Format");
		      racine.addContent(format);
 
		      Element createur= new Element("Createur");
		      racine.addContent(createur);
 
		      Element dateCreation = new Element("DateCreation");
		      racine.addContent(dateCreation );
 
		      try
		      {
		         //On utilise ici un affichage classique avec getPrettyFormat()
		         XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
		         //Remarquez qu'il suffit simplement de créer une instance de FileOutputStream
		         //avec en argument le nom du fichier pour effectuer la sérialisation.
		         sortie.output(document, new FileOutputStream("ressources/document.xml"));
		      }
		      catch (java.io.IOException e){}
 
 
 
		return SUCCESS;
	}
} | 
 
dans la methode addDocument j'ai mis le code de l'api jdom qui permet de créer un fichier xml dans la source (ressources/document.xml)
le fichier xml que je souhaite créer doit etre comme ce ci :
	Code:
	
1 2 3 4 5 6 7 8
   |  
<document>
<Titre></Titre>
<Type></Type>
<Format></Format>
<Createur></Createur>
<DateCreation></DateCreation>
</document>  | 
 
quand j'execute avec tomcat ,après je rempli le formulaire et je clique sur addDocument  il m'affiche l'erreur suivante :
	Code:
	
1 2 3 4 5 6
   |  
type Rapport d'état
 
message 
 
description La ressource demandée () n'est pas disponible.  |