2

p:tabMenuコンポーネントを使用しています。4 つのメニュー項目があり、それぞれが異なる jsf ページにリダイレクトされますが、問題はページが変更されずに返され、初期値の 0 のままになることですactiveindexactiveindex

<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>

自動的に変更される必要があることを知って、この問題を解決するにはどうすればよいですか?

4

3 に答える 3

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> 
于 2013-04-18T09:49:48.860 に答える
1

javascript の回避策で activeIndex の問題を解決しました。inputHidden を作成し、onclick イベントがあるときにその値を変更しました。

メニューとストレージの activeIndex を作成する tabBean マネージド Bean があります。

@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>
于 2013-04-30T13:20:09.773 に答える
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>  

Dirigeのパラメータでactiveindexを設定します:)

于 2013-04-30T13:55:10.330 に答える