1

sigma.js JavaScript ライブラリの gexf ファイル形式を使用して、JSF でグラフを描画しました。

この方法で、graph.xhtml ファイルの ui:fragment タグに gexf テンプレートを保存しました。

<?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');

パログラムは、Graph.xhtml ファイル内のノードとエッジの値を次のように初期化するために ManagedBean を使用します。

<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 に変換するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

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");
}
于 2014-02-08T12:21:01.093 に答える