XHTML GEXF 파일을 JSF에서 XML로 다운로드하거나 내보내는 방법은 무엇입니까?
문제
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");
}
. 제휴하지 않습니다 StackOverflow