Primefaces在延迟的outputPanel内改变inputSwitch的值

时间:2018-04-09 11:26:32

标签: jsf primefaces

我们正在使用JSF和Primefaces来控制在Tomcat上运行的Web应用程序中的SparkStream。当我们启动或停止此流时,这需要大约15秒的时间,Web-GUI会继续加载。

现在我们希望使用延迟加载来加载长内容,以确保即使Bean需要一些时间进行响应,Web-GUI仍然可以访问。无论如何,如果我们这样做,我们的p:inputSwitch就不再正常工作了。 每次加载或刷新页面时,Bean中的值都设置为false。

var downloadFile = (oracledb, connectionAttributes, responsem, files) => {
return new Promise((resolve, reject) => {
    oracledb.getConnection(connectionAttributes, (error, connection) => {
        var completed = false;
        if (error) {
            reject(response.send(`Cannot establish connection${JSON.stringify(connectionAttributes,undefined,2)}`));
            return;
        } else if (connection) {
            //result will have all the sheets data.

            result[sheet1].forEach((element) => {
               //code to add all the data to file by reading sheet data.
            });

            result[sheet2].forEach((element) => {
                //code to add all the data to file by reading sheet data.
            });
            resolve();
        }
    });
});}


caller function code-> downloadFile().then((resolved) => {
            response.download(filePath);
        }, (reject) => {
            console.log(reject);
        });

我们需要将inputSwitch放在延迟的outputPanel中,因为在整个页面完全呈现之前不应该可以访问它(这意味着Stream正在运行或停止,但没有启动或停止atm)。 PrimeFaces版本是6.0。

1 个答案:

答案 0 :(得分:0)

始终尝试最新版本;) 它可以修复:https://github.com/primefaces/primefaces/issues/2912