如何在JSF中将xhtml gexf文件下载或导出为XML?

时间:2014-01-11 07:52:26

标签: xml jsf gephi

我在sigma.js JavaScript库中使用gexf文件格式在JSF中绘制图形。

我以这种方式将gexf模板保存在graph.xhtml文件中的ui:fragment标签中:

<?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">

sigma.js库以这种方式使用graph.xhtml:

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

parogram使用ManagedBean以这种方式初始化graph.xhtml文件中的节点和边值:

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

一切正常,绘制图表。 我希望用户能够将graph.xhtml文件下载/保存为XML格式,以便能够在其他实用软件中使用它,如Gephi。

我该怎么做才能将xhtml文件转换为xml?

感谢。

1 个答案:

答案 0 :(得分:1)

使用preRenderView事件更改页面标题:

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

并且changeHeader函数是:

public void changeHeader() {
    HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
    response.setHeader("content-disposition", "attachment;filename=testFile.xml");
    response.setContentType("text/xml");
}