Индикатор загрузки jsf / primefaces во время инициализации компонента

В моем проекте JSF / Primefaces у меня много загрузки данных в методе init (postconstruct) моих bean-компонентов. Вот почему я хотел бы показать индикатор GIF во время загрузки бобов.

Я пробовал с простыми лицами и статусом Ajax (программная версия витрины)

http://www.primefaces.org/showcase/ui/ajaxStatusScript.jsf

Поэтому я добавил это в шаблон моего проекта

<p:dialog modal="true" widgetVar="loadWidget" header="Status"
    draggable="false" closable="false">

    <p:graphicImage value="../images/ajaxload.gif" />
</p:dialog>

Я хотел бы иметь возможность позвонитьloadWidget.show(); в начале метода init моего бина иloadWidget.hide(); в конце.

У вас есть идея, где и как запустить JavaScript, чтобы отобразить загрузочный GIF? Спасибо

РЕДАКТИРОВАТЬ

Я мог бы добавить, что я попробовал это. Вот часть моего шаблона, которая включает в себя содержание страницы. Он не работает ни в диалоге p: ни до, ни после содержимого.

<div class="content">
    <script>loadWidget.show();</script>
        <ui:insert name="body" />
    <script>loadWidget.hide();</script>
</div>

Консоль говоритloadWidget is not defined

EDIT2

Я постараюсь объяснить, как работает мой проект. Может быть полезно

Вот мой шаблон

<html ... >

<f:view contentType="text/html">

    <h:head> ... </head>

    <h:body>
        <ui:insert name="header" />
        <ui:insert name="menu" />
        <ui:insert name="body" />
        <ui:insert name="footer" />
        ... <!-- Other things -->
    </h:body>
</f:view>   
</html>

Тогда каждая страница определяетbody, Пример страницы.

<html ... >

<ui:composition template="myTemplateAbove">

    <ui:define name="body">

            <h:outputText value="#{beanOfMyFirstPage.myText}" />
            <p:commandButton action="#{beanOfMyFirstPage.goToAnotherPage}" />
            ...
        </ui:define>
</ui:composition>

</html>

Затем каждая страница связывается с bean-компонентом, расширяющим BaseBean.

@ManagedBean(name = "beanOfMyFirstPage")
@ViewScoped
public class beanOfMyFirstPage extends BaseBean {
    // attributes + getters and setters

    @PostConstruct
    public void init() {
        super.init();
        ... // actions that take time cause of DB requests for example
    }

    public void goToAnotherPage() {
        navigation.handleNavigation(FacesContext.getCurrentInstance(), null, "mySecondPage");
    }

    // methods
}

И обыкновенный боб

public class BaseBean {

    @PostConstruct
    public void init() {
        super.init();
        // General actions for all beans
    }

}

Ответы на вопрос(1)

Ваш ответ на вопрос