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. |