Как скачать или экспортировать файл XHTML GEXF в виде XML в JSF?

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

  •  26-12-2019
  •  | 
  •  

Вопрос

Я использовал формат файла GEXF в библиотеке Sigma.js JavaScript для рисования графов в JSF.

Я сохранил шаблон GEXF в интерфейсе UI: метка фрагмента в файле graph.xhtml таким образом:

<?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 использует график .xhtml таким образом:

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

Паруграмма использует менеджем для инициализации узлов и значений ребер в файле 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?

спасибо.

Это было полезно?

Решение

Используйте событие preRenderView, чтобы изменить заголовок страницы:

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

и функция изменений:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top