同一组件内的多个JSF progressBar

时间:2018-01-15 18:07:25

标签: jsf primefaces progress-bar

我正在尝试使用每个批处理的进度条显示几个批处理的进度。问题是只有一个进度条被发送到服务器端(最后一个)。这是代码......

我为进度做了一个RequestScoped命名bean,因为我读到多个progressBar,每个进度条需要一个bean实例,但这不能解决我的问题。

我正在使用Primefaces 6.1和JSF 2.2。

有什么想法吗?谢谢!

webview

我的RequestScope支持bean ...

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="i.astiapp.astiappadmindev">
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" android:required="true" />
    <uses-feature android:name="android.hardware.camera.front" android:required="true" />


    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
    <!-- My Location -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:screenOrientation="portrait"
            android:name=".MainActivity">

        </activity>
        <activity
            android:hardwareAccelerated="true"
            android:name=".SplashActivity"
            android:screenOrientation="portrait"
            android:theme="@style/SplashTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" /></intent-filter>
        </activity>
    </application>

</manifest>

1 个答案:

答案 0 :(得分:3)

确定。问题是PrimeFaces()。start()方法没有在JSF生成的所有组件上执行。所以,我所做的是一个javascript函数,它在页面完全加载时执行。在我的例子中,我需要初始化的组件是几个进度条。我的组件位于一个表单内的数据滚动条内,这就是为什么我将这些id连接起来的原因。 &#39; i&#39;是页面中每个渲染进度条的索引。

<script type="text/javascript">
        $(window).load(function() {
            startProgress();
        });

        function startProgress(){
            var pid = document.getElementsByClassName('ui-progressbar');
            var pidLength = pid.length;
            for (var i = 0; i &lt; pidLength; i++) {
                var id = "formExecutions:scroller:".concat(i).concat(":progressBar");
                PrimeFaces.getWidgetById(id).start();
            }
        }
    </script>

这就是全部!