`

richfaces 数据驱动menu(判断菜单切换间隔)

阅读更多

<rich:tabPanel switchType="client" id="w55">
    <c:set var="menus" value="#{MenuBean.menus}" />
    <c:forEach var="menu" items="#{MenuBean.menuHeader}"
     varStatus="status">
     <script>
      addHeadMenuUrl('#{menu.action_value}');
    </script>
     <rich:tab label="#{menu.label_name}" name="#{menu.label_name}" rendered="#{menu.visible_ind}"
      id="rrr_#{status.index}">
      <h:panelGrid columns="${fn:length(menu.items)}">
       <c:forEach var="menuitem" items="#{menu.items}"
        varStatus="status1">
        <c:choose>
         <c:when test="${fn:length(menuitem.items) >=1}">
          <rich:dropDownMenu>
           <f:facet name="label">
            <h:panelGroup>
             <h:graphicImage value="#{menuitem.icon_name}" rendered="#{menuitem.visible_ind}"
              styleClass="pic" />
             <h:outputText value="#{menuitem.label_name}" />
            </h:panelGroup>
           </f:facet>
           <c:forEach var="menuitem1" items="#{menuitem.items}">
            <rich:menuItem value="#{menuitem1.label_name}" rendered="#{menuitem1.visible_ind}"
             icon="#{menuitem1.icon_name}" submitMode="ajax"
             title="#{menuitem1.action_value}">
             <a4j:support event="onselect" reRender="targetFrame"
              bind="#{MenuBean.menuUrl}">
              <a4j:actionparam name="w"
               value="'#{menuitem1.action_value}'"
               assignTo="#{MenuBean.menuUrl}" noEscape="true" />
              <a4j:actionparam name="w1" value="'#{menu.action_value}'"
               assignTo="#{MenuBean.headerMenuUrl}" noEscape="true" />
             </a4j:support>
            </rich:menuItem>
           </c:forEach>
          </rich:dropDownMenu>
         </c:when>
         <c:otherwise>
          <h:panelGroup>
           <h:graphicImage value="#{menuitem.icon_name}" rendered="#{menuitem.visible_ind}"
            styleClass="pic" />
           <a4j:commandLink value="#{menuitem.label_name}" rendered="#{menuitem.visible_ind}"
            onclick="var ret=frmwork_checkmenuclick(); if(ret==false) return false;"
            title="#{menuitem.action_value}" reRender="targetFrame">
            <a4j:actionparam name="w" value="'#{menuitem.action_value}'"
             assignTo="#{MenuBean.menuUrl}" noEscape="true" />
            <a4j:actionparam name="w1" value="'#{menu.action_value}'"
             assignTo="#{MenuBean.headerMenuUrl}" noEscape="true" />

           </a4j:commandLink>
          </h:panelGroup>

         </c:otherwise>
        </c:choose>

       </c:forEach>
      </h:panelGrid>
      <a4j:support event="ontabenter" reRender="targetFrame"
          onsubmit="var ret=frmwork_checkmenuclick(); if(ret==false) return false;"
       bind="#{MenuBean.menuUrl}">
       <a4j:actionparam name="w" value="'#{menu.action_value}'"
        assignTo="#{MenuBean.menuUrl}" noEscape="true" />
       <a4j:actionparam name="w1" value="'#{menu.action_value}'"
        assignTo="#{MenuBean.headerMenuUrl}" noEscape="true" />

      </a4j:support>
     </rich:tab>
    </c:forEach>
   </rich:tabPanel>

 

 

 

 

<script>
  var menuInfo=[];
 
  function addHeadMenuUrl(url){
    menuInfo.push(url);
  }
  
   function frmwork_selectFirstMenu(){ 
          var mu="#{MenuBean.menuUrl}";
          if(mu==""){
     var tabPanelId='frmwork_menu_form111:w55';
     var tabId='frmwork_menu_form111:rrr_1'; 
     var tabs=RichFaces.panelTabs[tabPanelId];
     if(tabs==null) {
       //alert("no menu data");
       return;
     }
     var f=document.getElementById(tabs[0].id+"_shifted");
     if(f){
       f.onclick();
     }
    }
  }
 
  APPLICATION_PREVENSION_ESCAPE=true;
 
  function frmwork_checkmenuclick(){
 
     try{
     //debugger;      
       var ret=checkApplicationClickInterval(1000);
       if(ret==false) return false;
     }catch(e){
      
     }  
  }
 
  function frmwork_showMenu(url,header){
      if(header &amp;&amp; header!="" &amp;&amp; header!="1" ){     
     
   var index=-1;
   var len=menuInfo.length;
   for(var i=0;i&lt;len;i++){
     if(menuInfo[i]==header){
          index=i;
      }
   };
   if(index!=-1){
      //alert(index);
   }else{
     index=0;
   }
  
     
          //alert(url+"  --- "+header+" -- "+index+" -- "+menuInfo.join(","));
    var tabPanelId='frmwork_menu_form111:w55';
    var tabId='frmwork_menu_form111:rrr_'+index; 
    var tabs=RichFaces.panelTabs[tabPanelId];
    RichFaces.switchTab(tabPanelId,tabId);
   }

  }
 
</script>

 

 

 

 

 

 

 

js:

 

APPLICATION_PREVENSION_CLICK=new Date();
APPLICATION_PREVENSION_ESCAPE=true;

 

function checkApplicationClickInterval(interval){
  if(APPLICATION_PREVENSION_ESCAPE) {
     APPLICATION_PREVENSION_ESCAPE=false;
     return true;
  }
  APPLICATION_PREVENSION_ESCAPE=false;
 
  var timeInterval=interval?interval:3000;
  var d=new Date();
  var interval=d-APPLICATION_PREVENSION_CLICK;
  if(interval<timeInterval){
    alert("You click too fast,please wait server response!"); 
    return false;
  }else{
      APPLICATION_PREVENSION_CLICK=new Date();
    return true;
  }
};

分享到:
评论

相关推荐

    RichFaces4.5 JavaApi JSApi

    RichFaces的JS API也包含了一系列组件相关的API,例如`richfaces.selectOneMenu`,它提供了与富选择菜单组件交互的方法。开发者可以利用这些API来扩展或自定义组件的行为,以满足特定的应用场景需求。 在实际应用中...

    Richfaces标签

    ### Richfaces标签详解 #### 一、概述 Richfaces是一个基于JavaServer Faces(JSF)技术的开源框架,提供了一套丰富的用户界面组件库。这些组件不仅具备强大的功能,还能很好地支持AJAX交互,极大地提高了Web应用...

    richfaces中文开发文档

    **RichFaces中文开发文档概述** RichFaces是一款基于JavaServer Faces(JSF)技术的开源UI组件库,由JBoss组织开发。它为JSF应用程序提供了丰富的用户体验和强大的交互功能。这款框架极大地简化了Web开发过程,尤其...

    Richfaces ShowCase离线包

    Richfaces包含了一系列的富客户端组件,如数据网格、图表、日历、滑块等,这些组件支持AJAX技术,能够在不刷新整个页面的情况下更新部分网页内容,从而提高了应用的响应速度和用户体验。 **在线演示.txt** 文件可能...

    RichFaces 3.3 帮助文档(英文)

    ### RichFaces 3.3 帮助文档关键知识点概览 #### 一、简介 - **RichFaces框架概述:** RichFaces是一个基于JavaServer Faces(JSF)的开源组件库,提供了大量的富客户端组件以及对皮肤的支持。该文档详细介绍了如何...

    richfaces中的datagrid显示数据

    ### RichFaces中的DataGrid显示数据 #### 一、RichFaces简介 RichFaces是一个基于JavaServer Faces(JSF)的开源框架,它提供了丰富的组件库来增强Web应用的用户体验。通过结合Ajax技术,RichFaces能够创建出更加...

    richfaces-ui-3.2.1

    《深入理解RichFaces UI 3.2.1在JBoss中的应用》 RichFaces UI 3.2.1是JBoss框架中一个重要的组件,它为开发人员提供了一套强大的AJAX(Asynchronous JavaScript and XML)功能,极大地提升了Web应用程序的交互性和...

    richfaces参考文档

    **RichFaces 参考文档详解** RichFaces 是一个强大的 JavaServer Faces (JSF) 扩展库,专为创建交互式、富客户端Web应用程序而设计。这个“richfaces参考文档”是开发人员的重要资源,尤其是对初学者而言,它提供了...

    Richfaces组件使用指南

    RichFaces是一个开源框架,专注于将Ajax功能无缝集成到JavaServer Faces(JSF)应用程序中,无需依赖JavaScript。这个框架充分利用了JSF的生命周期、验证、转换工具以及资源管理功能。它提供的Ajax支持是完全集成到...

    richfaces-3.0.0

    7. **数据绑定:** RichFaces 支持 EL(表达式语言)进行数据绑定,将 UI 控件的值与后台bean的属性关联起来。 8. **国际化和本地化:** RichFaces 提供了对多种语言的支持,方便创建多语言应用。 9. **源码学习:...

    richfaces开发指南(英文版)

    **RichFaces 开发指南概述** **1. 引言** RichFaces 是一个强大的 JavaServer Faces (JSF) 扩展框架,它提供了大量的富组件和皮肤可定制性支持。这个框架旨在帮助开发者创建功能丰富的、交互性强的Web应用程序,...

    richfaces详细使用

    ### RichFaces框架详解及其在IT行业的应用 #### 引言 在现代Web开发领域,提升用户体验和优化交互性是至关重要的。RichFaces作为一款开源框架,以其强大的Ajax能力、丰富的组件库以及高度可定制的特性,在Java...

    richfaces4.0所需jar包

    在RichFaces中,Guava可能被用于提供高效的缓存、多线程支持和其他高级数据结构。 3. **richfaces-core-impl-4.0.0.Final.jar**:这是RichFaces核心实现的库,包含了许多基础服务和功能,如事件处理、Ajax支持、...

    richfaces3.2用户手册的pdf版

    ### RichFaces 3.2 用户手册知识点概览 #### 一、引言 RichFaces 3.2 是一款强大的框架,提供了丰富的组件库以及可定制化的皮肤支持,它旨在简化Web应用程序的开发过程,尤其在JavaServer Faces (JSF) 技术的基础...

    richfaces中文学习教程

    关于richfaces的一些比较好的资料,希望大家看了能有收获

    richfaces(里面包含JAR包)

    1. **RichFaces概述**:RichFaces是一个强大的JSF组件库,它提供了许多预构建的UI组件,如数据网格、日历、图表、对话框等,增强了用户体验并简化了开发过程。它还支持AJAX技术,使得页面更新无需完全刷新,提升了...

Global site tag (gtag.js) - Google Analytics