我在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?
感谢。
答案 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");
}