Bonjour,

je veux créer un fichier xml a partir d'un formulaire jsp en utilisant struts2

voila le formulaire :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
type Rapport d'état
 
message 
 
description La ressource demandée () n'est pas disponible.