Как сделать частичный рендеринг страницы (центральное содержание) с JSF2 шаблонов через AJAX (из меню)

я изо всех сил пытался заставить это работать в течение 2 недель, я пытаюсь объединить информацию из BalusC из этих 2 сообщений в (link1 link2) для частичного рендеринга страницы центральной области содержимого с помощью меню слева. Таким образом, ссылки слева будут обновлять содержимое центра через частичную страницу, рендеринг с использованием<f:ajax> или, может быть<a4j:ajax> через Richfaces

------------------------------------------------------
| include1 link |                                     |
| include2 link |  center content like include1.xhtml |
| include3 link |                                     |
------------------------------------------------------

Моя страница-layout.xhtml (основной шаблон, который будет использоваться include1.xhtml, include2.xhtml, ..) выглядит следующим образом.

<h:body>
    <div id="top" class="top">
        <ui:insert name="top">page-layout default top content</ui:insert>
    </div>
    <div>
        <div id="left">
            <h:form id="navigationFormId">             
                    <f:ajax render=":contentForm">                                        
                        <h:commandLink value="include1" 
                                       action="#{navigationBean.setPage('include1')}" />
                        <p></p>
                        <h:commandLink value="include2" 
                                       action="#{navigationBean.setPage('include2')}" />                    
                        <p></p>
                        <h:commandLink value="include3" 
                                       action="#{navigationBean.setPage('include3')}" />   
                        <p></p>
                    </f:ajax>                                     
            </h:form>
        </div>
        <div id="content">
           <ui:insert name="content">

                <h:panelGroup id="contentPanelGroup" layout="block"> 
                    <h:form id="contentForm">

                        <h:panelGroup rendered="#{navigationBean.page == 'include1'}">            
                            <ui:include src="include1.xhtml" />         
                        </h:panelGroup> 
                        <h:panelGroup rendered="#{navigationBean.page == 'include2'}">            
                            <ui:include src="include2.xhtml" />         
                        </h:panelGroup>
                        <h:panelGroup rendered="#{navigationBean.page == 'include3'}">             
                            <ui:include src="include3.xhtml" />         
                        </h:panelGroup>

                    </h:form> 
               </h:panelGroup>     

            </ui:insert>
        </div>
    </div>
</h:body>

NavigationBean.java определяется как bean-компонент ViewScoped через CDI с @Named

открытый класс NavigationBean реализует Serializable {

public NavigationBean() {}

public String getPage() {return page;}
public void setPage(String p) {page = p;}
private String page = "include1";

}

включенные страницы являются файлами наподобие include1.xhtml и include2.xhtml и должны загружаться в центральное содержимое при щелчке левой ссылки меню, вот пример include2.xhtml

<h:body>

    <ui:composition template="page-template.xhtml">
        <ui:define name="content">

             include2

             <h:form> 
                 form components for include2
             </h:form>

        </ui:define>
    </ui:composition>

</h:body>

Я получаю FileNotFoundException, хотя трассировка стека не говорит, какой, но удаляя

<h:panelGroup rendered=".....>
    <ui:include src="..." />
</h:panelGroup>

Теги удаляет исключение. Я думаю, что это правильная реализация для достижения этой цели на основе 2 сообщений BalusC, но просто не могу заставить ее работать.

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

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