Навигация по JSF 2 Prime Faces с использованием меню и панелей - PullRequest
2 голосов
/ 09 августа 2011

Привет, я только изучаю JSF 2, используя Primefaces.
У меня есть вопрос относительно их примера панели. Я хотел бы использовать левую панель в качестве заполнителя для моего меню навигации и центральную панель для содержимого / страниц. Каждый раз, когда я нажимаю на меню, вся страница обновляется, я бы хотел, чтобы при нажатии на меню только центральная панель загружала соответствующую страницу. Возможно ли это с использованием простых символов или других методов для jsf 2?
Ниже приведен код, который я использую. Заранее спасибо.

Спасибо за ваш быстрый ответ. Я попробовал ваше предложение, но получил некоторые ошибки. Извините, я действительно новичок в jsf2 и простых лицах. Заранее спасибо.

СООБЩЕНИЕ ОБ ОШИБКЕ: / homepage.xhtml @ 26,84 Библиотека тегов поддерживает пространство имен: http://primefaces.prime.com.tr/ui,, но тег для имени не определен: menuItem

Ниже приведен мой код для просмотра (homepage.xhtml)

<p:layout fullPage="true">
<p:layoutUnit position="top" height="75" header="Top" resizable="true" closable="true" collapsible="true">  
        <h:outputText value="North unit content." />  
</p:layoutUnit>  
<p:layoutUnit position="bottom" height="75" header="Bottom" resizable="true" closable="true" collapsible="true">  
        <h:outputText value="South unit content." />  
</p:layoutUnit>        
<p:layoutUnit position="left" width="250" header="Left" resizable="true" closable="true" collapsible="true">  
        <h:outputText value="West unit content." />        
<p:menu type="plain">
<p:submenu label="Mail">

<p:menuItem actionListener="#{navBean.setPage('pageName')}" update="centerPanel" />

<p:menuitem value="Gmail" url="http://www.google.com" />
<p:menuitem value="Hotmail" url="http://www.hotmail.com" />
<p:menuitem value="Yahoo Mail" url="http://mail.yahoo.com" />
</p:submenu>
<p:submenu label="Videos">
<p:menuitem value="Youtube" url="http://www.youtube.com" />
<p:menuitem value="Break" url="http://www.break.com" />
<p:menuitem value="Metacafe" url="http://www.metacafe.com" />
</p:submenu>
<p:submenu label="Social Networks">
<p:menuitem value="Facebook" url="http://www.facebook.com" />
<p:menuitem value="MySpace" url="http://www.myspace.com" />
</p:submenu>
</p:menu></p:layoutUnit>
    <p:layoutUnit position="center" id="centerPanel"> 

    <h:include src="#{navBean.page}.xhtml" />

        This is the center panel
    </p:layoutUnit>        
</p:layout>

Это мой код для моего бина NavBean.java

package somePackage;

import javax.faces.bean.*;

@ManagedBean
@SessionScoped
public class NavBean {
      private String page = "login";
}

1 Ответ

2 голосов
/ 10 августа 2011

Примерно так: Динамическая JSF включает использование Ajax-запроса .

В вашем p: menuItem используйте атрибут action вместо url, чтобы сделать ajaxcal, а в центральной панели вы можете использовать h:включите и измените значение атрибута src в h: include в методе вашего компонента поддержки.Это также может быть actionListener вместо action.

Управляемый компонент -

@ManagedBean
@SessionScoped
public class NavBean {

    private String page = "default";

    //getter/setter for page

Просмотр -

<p:menuItem actionListener="#{navBean.setPage('pageName')}" update="centerPanel" />

//center panel with id="centerPanel"
<h:include src="#{navBean.page}.xhtml" />

Вы не хотите обновлять страницу, но делаетеajaxcal, измените страницу значений и обновите центральную панель.

...