0
我有一個按鈕,當我按下它時,該方法從數據庫中獲取數據並在數據表中顯示記錄。這一行動發生超過1分鐘,我想顯示一個進度條(時間是可變的)帶blockUI的實時進度條無法使用大氣中的primefaces
我發現這個頁面的解決方案:Show a real time progress bar in a Html User Dialog
的問題是,我顯示進度條,但總是是「0%」。在JavaScript函數中不要輸入。我不知道我是否做錯了什麼。
這是我的XHTML:
<h:form id="formAllocate">
<p:panel id="panel" header="Realtime ProgressBar">
<p:commandButton id="btn" value="Start"
actionListener="#{scheduleMB.startLongRunningProcess}">
</p:commandButton>
</p:panel>
<p:blockUI block="panel" trigger="btn">
<p:progressBar widgetVar="progressBar" style="width:300px"
labelTemplate="{value}%">
</p:progressBar>
<span id="msg"></span>
</p:blockUI>
</h:form>
<p:socket channel="/realtime" onMessage="handleProgress"></p:socket>
<script type="text/javascript">
function handleProgress(progressJson) {
alert('begin');
var progressData = eval("(" + progressJson + ")");
progressBar.setValue(progressData.progress);
$("#msg").text(progressData.msg);
}
</script>
這是我的豆:
public void startLongRunningProcess(){
EventBus eventBus = EventBusFactory.getDefault().eventBus();
eventBus.publish("/realtime", "{ 'progress' : 10, 'msg' : 'Extract data'}");
list =
getAuxService().findList(userSelected, initDate2,
endDate2);
}
在web.xml:
<!-- Primefaces PUSH -->
<servlet>
<servlet-name>Push Servlet</servlet-name>
<servlet-class>org.primefaces.push.PushServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>Push Servlet</servlet-name>
<url-pattern>/primepush/*</url-pattern>
</servlet-mapping>
在我的pom.xml我有這樣的依存關係:
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-runtime</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.roboguice</groupId>
<artifactId>roboguice</artifactId>
<version>2.0</version>
</dependency>
我使用的是primefaces 5.1,spring 3.2.5,hibernate 4.2.7,java 1.7,primefaces擴展3.0.0
我在做什麼錯?
Thx尋求幫助和解答。
你最好包括/ blockquote /總結實際答案,而不是隻發佈鏈接。如果這個鏈接腐爛了,那麼整個答案就毫無價值。 Stack Exchange的答案應該能夠獨立存在,而無需點擊指向外部站點的鏈接來查找缺失的部分 - 最多隻能將它們用作支持。這樣,答案對未來有同樣問題的其他人也很有價值。即答案不應該以OP爲中心,但對任何有相同問題的人都有價值。 – BalusC 2015-01-23 12:35:36
添加一個摘要對我來說很好,但是如果人們交叉帖子,而另一個論壇有一個冗長的討論,我不確定我想總結一下... 但是我現在要爲此做一個 – Kukeltje 2015-01-23 13:43:40
Stack Exchange網站是問答網站而不是論壇。你有沒有嘗試過在論壇中尋找答案?如果對這個主題有很多不相關的回覆(「評論」),你難道不覺得答案很難找到嗎?如果回覆中只有一個鏈接被破壞或指向另一個網站,那麼你不得不再次抓取所有的亂七八糟的東西,否則你難道不覺得困惑嗎?)你是不是每次都很高興您看到Stack Exchange站點上其他人詢問的問題的世界級答案?嘗試提供相同的;) – BalusC 2015-01-23 13:54:25