Comment télécharger ou exporter un fichier gexf xhtml au format XML dans JSF ?

StackOverflow https://stackoverflow.com//questions/21059980

  •  26-12-2019
  •  | 
  •  

Question

J'ai utilisé le format de fichier gexf dans la bibliothèque JavaScript sigma.js pour dessiner des graphiques en JSF.

J'ai enregistré le modèle gexf dans la balise ui:fragment du fichier graph.xhtml de cette manière :

<?xml version="1.0" encoding="UTF-8"?>
<ui:fragment xmlns="http://www.w3.org/1999/xhtml"
             xmlns:ui="http://java.sun.com/jsf/facelets">
    <gexf xmlns="http://www.gexf.net/1.2draft" version="1.2">

La bibliothèque sigma.js utilise le graph.xhtml de cette manière :

sigInst.parseGexf('#{request.contextPath}/user/graph/graph.jsf');

Le parogramme utilise un ManagedBean pour initialiser les valeurs des nœuds et des bords dans le fichier graph.xhtml de cette manière :

<ui:repeat value="#{graphInfoBean.edges}" var="edge" varStatus="indexVar">
                <edge id="#{indexVar.index}" source="#{edge.source}" target="#{edge.target}"

Tout fonctionne correctement et le graphique est dessiné.Je souhaite que l'utilisateur puisse télécharger/enregistrer le fichier graph.xhtml au format XML afin de pouvoir l'utiliser dans d'autres logiciels utilitaires comme Gephi.

Comment puis-je procéder pour pouvoir convertir le fichier xhtml en XML ?

Merci.

Était-ce utile?

La solution

utiliser preRenderView événement pour changer l'entête de la page :

<f:event type="preRenderView" listener="#{graphInfoBean.changeHeader}"/>

et la fonction changeHeader est :

public void changeHeader() {
    HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
    response.setHeader("content-disposition", "attachment;filename=testFile.xml");
    response.setContentType("text/xml");
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top