제 질문 종류는 프라임 페이스 진행률 표시 줄에 적용되지만 바닐라 jsf 구현 (jquery 사용)은 도움이됩니다. 내 문제는 내가 또한 진행률 표시 줄을 렌더링 긴 mysql 쿼리를 시작할 때입니다. 문제는 데이터 쿼리가 완료된 후 진행이 시작된다는 것입니다. 렌더링 단계는 백엔드 항목이 완료 될 때까지 적용되지 않기 때문에 추측합니다. 다른 스레드에서 진행률 표시 줄을 시작해야합니까?JSF에서 mysql 데이터 활동을 나타내는 진행률 막대 구현
진행률 표시 줄에 쿼리가있는 위치를 반드시 표시 할 필요는 없습니다 (가능한 경우). 나는 단지 "생각하는"응용 프로그램을 보여주고 싶습니다. 어쩌면 텍스트 나 애니메이션 gif가있을 수 있습니다. 어떤 도움을 주셔서 감사합니다.
편집
이 내가 가진 것입니다.
<p:ajaxStatus>
<f:facet name="start">
<h:graphicImage value="/resources/images/ajax-loader-bar.gif" />
</f:facet>
<f:facet name="complete">
<h:graphicImage value="/resources/images/ajax-loader-bar-still.gif" />
</f:facet>
<f:facet name="default">
<h:graphicImage value="/resources/images/ajax-loader-bar-still.gif" />
</f:facet>
</p:ajaxStatus>
요청은 아약스가 아닙니다.
<p:commandButton value="Yes" update="growl" onclick="confirmation.hide()"
action="#{viewLines.downloadFile}" ajax="false" />
뒤에있는 방법입니다.
public void downloadFile() {
if (selectedPkgLine != null) {
ExcelSheet excelSheet = new ExcelSheet();
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
String pkgLineName = StringUtils.removeSpaces(StringUtils.stripGarbage(selectedPkgLine.getShortname()));
StringBuilder builder = new StringBuilder();
builder.append(pkgLineName);
builder.append(".xls");
externalContext.setResponseContentType("application/vnd.ms-excel");
externalContext.setResponseHeader("Content-Disposition", "attachment; filename=" + builder.toString());
try {
excelSheet.writeExcelSheet(this, externalContext.getResponseOutputStream());
} catch (WriteException ex) {
FacesUtils.addFatalMessage(ex.getMessage());
} catch (IOException ex) {
FacesUtils.addErrorMessage(ex.getMessage());
} catch (ServletException ex) {
FacesUtils.addErrorMessage(ex.getMessage());
}
facesContext.responseComplete();
} else {
submitDisabled = true;
FacesUtils.addErrorMessage("No packaging line was selected");
}
}
그게 재밌 네요. 그게 정확히 내가 가진 것이기 때문이죠. 필터링 및 아약스 이벤트에서 작동하지만 mysql 쿼리를 수행 할 때는 전혀 움직이지 않습니다. –
브라우저에서 'Esc'또는 특정 키 조합을 눌러 애니메이션 된 모든 gif를 중지했을 수 있습니다. 또는'p : ajaxStatus'의 경우, 아약스 요청이 전혀 아닙니다. – BalusC
아약스 요청이 아닙니다. 기억한다면 Excel 전체로 되돌아갑니다. 사용자가 파일을 다운로드해야하기 때문에 내 작업이 false 여야합니다. xls 파일은 JXL과 Mysql을 사용하여 즉석에서 생성됩니다. 어떻게 그걸 해결할 수 있을까요? 도움을 많이 주셔서 감사합니다. –