2013-04-18 2 views
2

p:tabMenu 구성 요소를 사용하고 있습니다. 내가 4 개 메뉴 아이템을 가지고, 각각 다른 JSF 페이지로 리디렉션하지만 문제는 페이지가 activeindexactiveindex을 변경하지 않고 돌려 주어집니다 내가이 문제를 해결하려면 어떻게 0PrimeFaces 탭 메뉴 인덱스가 변경되지 않습니다

<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:p="http://primefaces.org/ui"> 
<p:tabMenu activeIndex="0"> 
    <p:menuitem value="Home" url="Menu.jsf" icon="ui-icon-star"/> 
    <p:menuitem value="Fabricants" url="/pagess/pagesFabricant/Fabricant.jsf" icon="ui-icon-wrench" /> 
    <p:menuitem value="Composants" url="/pagess/pagesComposant/Composant.jsf" icon="ui-icon-search"/> 
    <p:menuitem value="Dossier d'equivalence" url="DEQ.jsf" icon="ui-icon-document"/> 
</p:tabMenu> 

</ui:composition> 

이다 초기 값과 동일하게 유지 문제가 자동으로 변경되어야한다는 것을 알고 있습니까?

답변

3

EL을 사용하여 관리 Bean 레벨에서 설정할 수 있습니다. 이렇게하면

<p:tabMenu activeIndex="#{myBean.myActiveIndex}"> 
    <p:menuitem value="Home" url="Menu.jsf" icon="ui-icon-star" action="#{myBean.setActiveIndex(0)}"/> 
    <p:menuitem value="Fabricants" url="/pagess/pagesFabricant/Fabricant.jsf" action="#{myBean.setActiveIndex(1)}" icon="ui-icon-wrench" /> 
</p:tabMenu> 
+1

Thx 너의 협력을 위해 :) – FERESSS

+0

하지만 내 bean에 대해이 activeindex를 추가하면 작동하지 않습니다. ng !!! – FERESSS

+0

빈에 값을 보낼 수 있도록 탭 메뉴 주위에 ''이 필요할 수도 있습니다. – phoenix7360

1

나는 자바 스크립트 해결 방법으로 activeIndex 문제를 해결했습니다. inputHidden을 만들었고 onclick 이벤트가있을 때 값을 변경했습니다.

나는 tabBean 내 메뉴 및 저장소를 만들고 관리 Bean을 가지고 activeIndex :

@SessionScope 
@ManagedBean(name="tabBean") 
public class TabBean{ 

private int activeIndex; 

public IMenu getMenu(){ 
    IMenuModel simpleMenuModel = new DefaultMenuModel(); 

    MenuItem mi = new MenuItem(); 
    mi.setValue("Home"); 
    mi.setIcon("ui-icon-home"); 
    mi.setActionExpression(UITools.ExternalContext.getMethodValue("home", new Class[]{})); 
    mi.setAjax(false); 
    simpleMenuModel.addMenuItem(mi); 
    ... 
    return menu; 
} 
} 

내 XHTML 페이지

나는이 :

<script> 
    function setCurrentIndex(index){ 
    var activeIndexName = PrimeFaces.escapeClientId('tabForm:activeIndex_hidden'); 
    var component = $(activeIndexName); 
    component.val(index); 
    } 
</script> 
<p:outputPanel id="menuPanel" layout="block"> 
    <h:form id="tabForm"> 
    <p:tabMenu id="tabMenu" model="#{tabBean.menu}" activeIndex="#{tabBean.activeIndex}" /> 
    <h:inputHidden id="activeIndex_hidden" value="{tabBean.activeIndex}"/> 
    </h:form>  
</p:outputPanel> 
+0

당신의 helep를위한 Thx – FERESSS

0
<p:tabMenu activeIndex="#{loginBean.activeindex}"> 
    <p:menuitem value="Accueil" icon="ui-icon-star" action="#{loginBean.Dirige(0)}" /> 
    <p:menuitem value="Fabricants" icon="ui-icon-wrench" action="#{loginBean.Dirige(1)}" /> 
    <p:menuitem value="Composants" icon="ui-icon-search" action="#{loginBean.Dirige(2)}"/> 
    <p:menuitem value="Dossier d'equivalence" icon="ui-icon-document" action="#{loginBean.Dirige(3)}"/> 
</p:tabMenu> 

과 parametere에서와 activeindex 설정 Dirige :)

관련 문제