【发布时间】:2014-03-31 08:33:18
【问题描述】:
我的 JSF 页面底部有一个提交按钮,它将所有输入(文本、文件等)提交到数据库和服务器。由于此操作需要的持续时间,我想向用户显示操作的进度,并在完成时将他重定向到完成站点。
我的 bean 看起来像:
<h:form enctype="multipart/form-data">
<p:commandButton widgetVar="submitButton" value="Save to DB" action="#{bean.submit}" onclick="PF('submitButton').disable();" />
<p:progressBar widgetVar="pbAjax" ajax="true" value="#{bean.saveProgress}" interval="1000" labelTemplate="{value}%" styleClass="animated" />
</h:form>
和我的代码:
private int saveProgress;
public String submit(){
for(int i = 0; i < 100; i++){ //dummy values
//DB operations
//file uploads
saveProgress = i;
System.out.println("Progress: " + saveProgress);
}
return "finished.xhtml";
}
//getter for saveProgress
问题是,完成后进度条和页面都不会导航到finished.xhtml。
我在这里做错了什么?这是一个线程问题(因为提交不是线程安全的?) 我该如何解决这个问题?
【问题讨论】:
-
你在 faces-config.xml 中定义了导航吗??
-
我在不需要导航规则的地方使用 JSF 2.0...在其他页面中它可以工作(使用 h:commandbutton),但 p:commandbutton 在执行动作方法后忽略动作结果跨度>
-
好的。您没有在问题中指定。
标签: jsf primefaces navigation progress-bar submit