XHTML GEXF 파일을 JSF에서 XML로 다운로드하거나 내보내는 방법은 무엇입니까?

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

  •  26-12-2019
  •  | 
  •  

문제

SIGMA.JS JavaScript 라이브러리에서 GEXF 파일 형식을 사용하여 JSF에서 그래프를 그립니다.

i 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');
.

PoArogram은이 방법으로 graph.xhtml 파일의 노드 및 가장자리 값을 초기화하기 위해 ManagedBean을 사용합니다.

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

모든 것이 제대로 작동하고 그래프가 그려집니다. Gephi와 같은 다른 유틸리티 소프트웨어에서 graph.xhtml 파일을 XML 형식으로 다운로드 / 저장할 수 있도록합니다.

어떻게이 작업을 수행 할 수 있도록 XHTML 파일을 XML로 변환 할 수 있습니까?

감사합니다.

도움이 되었습니까?

해결책

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");
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top