`
Cecily
  • 浏览: 58703 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

初涉StrutsMenu

阅读更多

      最近因为工作的原因,使用到了StrutsMenu,对它做了一些初步的了解,想跟大家分享一下.Struts Menu应用是一个JSP标记的集合,支持从XML文件生成各种不同菜单系统,Struts Menu的相关资料中,有一个事例,集中演示了各种不同形态的菜单,包括静态的和动态的,也包含基于用户权限的菜单,还是对我们使用Struts Menu很有帮助的。我也做了一个关于Struts Menu的小例子,感觉需要的包还真不少,我在附件中提供给大家.下面是一个非常简单的,显示Struts Menu中一种菜单--CoolMenu菜单,供大家参考.  (参考了其他相关资料)

1、将需要的类库包拷贝到 WEB-INF/lib/目录下 ,如struts-menu.jar、jstl-1.0.6.jar、standard-1.0.6.jar 、commons-collections-3.0.jar、velocity-tools-view-1.0.jar、velocity-1.4.jar、log4j-1.2.8.jar、commons-lang-2.1.jar等,所有的类库包在附件的事例中提供;

2、将 /lib/struts-menu.tld、struts-menu-el.tld拷贝到WEB-INF/lib/目录下;

3、将struts-menu.war中的scripts、styles、images目录拷贝到你的应用"/"目录下;WEB-INF目录下的classes目录拷贝到工程WEB-INF下;META-INF目录下的INDEX.LIST拷贝到工程的META-INF目录下。

4、修改 web.xml 加入
context-param及 taglib 的调用。

  1. <context-param>
  2. <param-name>javax.servlet.jsp.jstl.fmt.localizationContextparam-name>  
  3.   <param-value>TrackerResparam-value>
  4. context-param>
  5. <taglib>
  6. <taglib-uri>/tags/struts-menutaglib-uri> 
  7.   <taglib-location>/WEB-INF/tld/struts-menu.tldtaglib-location>
  8. taglib><taglib>   
  9.  <taglib-uri>/tags/struts-menu-eltaglib-uri>   
  10.     <taglib-location>/WEB-INF/tld/struts-menu-el.tldtaglib-location>
  11. taglib>  

<o:p> 5、修改 struts-config.xml 加入 plugin描述及message-resources. 6、配置menu-config.xml,代码在事例中.  <o:p></o:p></o:p>

  1. <plug-in className="net.sf.navigator.menu.MenuPlugIn">  
  2.     <set-property property="menuConfig" value="/WEB-INF/menu-config.xml"/>  
  3. plug-in>  
  4.   
  5.   <message-resources  parameter="TrackerRes"/>  
  6.   <message-resources  parameter="ISOCodeRes" key="ISOCodeRes"/>  

 6、配置menu-config.xml,描述Strut-menu将采用的显示方式,在jsp文件中选择Displayer;进行相关菜单项目的配置后,就可以在jsp文件中选择显示的菜单。

  1. <MenuConfig>  
  2.   <Displayers>  
  3.     <Displayer   name="DropDown"  
  4.                  type="net.sf.navigator.displayer.DropDownMenuDisplayer"/>  
  5.     <Displayer   name="Simple"  
  6.                  type="net.sf.navigator.displayer.SimpleMenuDisplayer"/>  
  7.     <Displayer   name="CoolMenu"  
  8.                  type="net.sf.navigator.displayer.CoolMenuDisplayer"/>  
  9.     <Displayer   name="CoolMenu4"  
  10.                  type="net.sf.navigator.displayer.CoolMenuDisplayer4"/>  
  11.     <Displayer   name="MenuForm"  
  12.                  type="net.sf.navigator.example.PermissionsFormMenuDisplayer"/>  
  13.     <Displayer   name="ListMenu"  
  14.                  type="net.sf.navigator.displayer.ListMenuDisplayer"/>  
  15.     <Displayer   name="TabbedMenu"  
  16.                  type="net.sf.navigator.displayer.TabbedMenuDisplayer"/>  
  17.     <Displayer   name="Velocity"  
  18.                  type="net.sf.navigator.displayer.VelocityMenuDisplayer"/>  
  19.     <Displayer   name="XtreeMenu"  
  20.                  type="net.sf.navigator.displayer.XtreeMenuDisplayer"/>  
  21.     <Displayer   name="CSSListMenu"  
  22.                  type="net.sf.navigator.displayer.CSSListMenuDisplayer"/>  
  23.   Displayers>  
  24.   <Menus>  
  25.     <Menu  name="indexMenu"  title="Examples">  
  26.         <Item  name="indexMenu1"  title="Basic Example"  
  27.                toolTip="Shows usage of the menu displayers using defaults."  
  28.                page="/menutest1.jsp"/>  
  29.         <Item  name="indexMenu2"  title="Advanced Example"  
  30.                toolTip="Shows customized menu displays."  
  31.                page="/menutest2.jsp"/>  
  32.         <Item  name="indexMenu3"  title="CoolMenu Example"  
  33.                toolTip="Shows menu using CoolMenu3"  
  34.                page="/coolmenu1.jsp"/>  
  35.         <Item  name="indexMenu4"  title="CoolMenu Example - With Form"  
  36.                toolTip="Shows menu using CoolMenu3 with forms."  
  37.                page="/coolmenu2.jsp"/>  
  38.         <Item  name="indexMenu5"  title="Permissions Example"  
  39.                toolTip="Example use of menu disable and permission checking with CoolMenus."  
  40.                page="/permissionsForm.jsp"/>  
  41.         <Item  name="indexMenu6"  title="CoolMenu4 Example"  
  42.                toolTip="Shows menu using CoolMenu4"  
  43.                page="/coolmenu4.jsp"/>  
  44.         <Item  name="indexMenu7"  title="Expandable DHTML List Example"  
  45.                toolTip="Shows Expandable DHTML list"  
  46.                page="/dhtmlExpandable.jsp"/>  
  47.         <Item  name="indexMenu7"  title="Dropdown DHTML List Example"  
  48.                toolTip="Shows Dropdown DHTML list"  
  49.                page="/dhtmlDropdown.jsp"/>  
  50.         <Item  name="indexMenu8"  title="Roles Menu Example"  
  51.                toolTip="Shows Menus based on user's role"  
  52.                page="/rolesMenu.jsp"/>  
  53.         <Item  name="indexMenu9"  title="Tabbed Menu Example"  
  54.                toolTip="Shows Tabbed-based Menu"  
  55.                forward="tabbedMenu"/>  
  56.         <Item  title="Velocity Template Menu"  
  57.                toolTip="Shows very simple Velocity generated Menu"  
  58.                page="/velocity.jsp"/>  
  59.         <Item  title="Velocity CoolMenus Menu"  
  60.                toolTip="Shows Velocity generated CoolMenu"  
  61.                page="/velocity-coolmenu4.jsp"/>  
  62.         <Item  title="Velocity XTree Menu"  
  63.                toolTip="Shows Velocity generated XTree"  
  64.                page="/velocity-xtree.jsp"/>  
  65.         <Item  title="Velocity Tabbed Menu"  
  66.                toolTip="Shows Velocity generated Tabbed Menu"  
  67.                page="/velocity-tabs.jsp?Home"/>  
  68.         <Item  title="Nice Looking Tabbed Menu"  
  69.                toolTip="Shows Velocity generated Tabbed Menu"  
  70.                page="/velocity-nicetabs.jsp?Home"/>  
  71.         <Item  title="EL (Expression Language) enabled Menu"  
  72.                toolTip="Shows very simple Velocity EL Menu"  
  73.                page="/velocity-el.jsp"/>  
  74.         <Item  title="Dynamic, Databased-driven Menu"  
  75.                toolTip="Shows very simple menu built from a database table"  
  76.                page="/dynamicMenu.jsp"/>  
  77.         <Item  title="CSS-based Drop-down Menu: Horizontal [New!]"  
  78.                toolTip="CSS-only Horizontal drop-down menu"  
  79.                page="/cssHorizontal.jsp"/>  
  80.         <Item  title="CSS-based Drop-down: Vertical [New!]"  
  81.                toolTip="CSS-only Vertical drop-down menu"  
  82.                page="/cssVertical.jsp"/>  
  83.     Menu>  
  84.     <Menu name="projectMenu" title="Project Menu">  
  85.         <Item title="Home" toolTip="Return to List of Menus" page="/index.jsp"/>  
  86.         <Item title="Documentation" toolTip="View Project Documentation"  
  87.             location="http://struts-menu.sf.net"/>  
  88.         <Item title="FAQs" toolTip="View Frequenty Asked Questions"  
  89.             location="http://struts-menu.sf.net/faq.html"/>  
  90.         <Item title="Mailing Lists" toolTip="Subscribe to Mailing Lists"  
  91.             location="http://sourceforge.net/mail/?group_id=48726"/>  
  92.         <Item title="Mailing List Archives"  
  93.             toolTip="Search the Mailing List Archives"  
  94.             location="http://www.mail-archive.com/index.php?hunt=struts-menu"/>  
  95.     Menu>  
  96.     <Menu  name="ToDoListMenuFile"  title="FILE"  description="test" width="50">  
  97.        <Item   name="TDLnew"   title="NEW">  
  98.            <Item   name="TDLnewcase"   title="CASE"    image="images/case-new.png"  
  99.                    location="NewCase.jsp"/>  
  100.            <Item   name="TDLnewitem"    title="ITEM"   image="images/item-new.png"  
  101.                    location="index.jsp"/>  
  102.            <Item   name="TDLnewparty"   title="PARTY"  image="images/party-new.png"  
  103.                    location="index.jsp"/>  
  104.        Item>  
  105.        <Item   name="TDLopen"   title="OPEN">  
  106.            <Item   name="TDLopencase"    title="CASE"   image="images/case-open.png"  
  107.                     location="index.jsp"/>  
  108.            <Item   name="TDLopenitem"   title="ITEM"    image="images/item-open.png"  
  109.                     location="index.jsp"/>  
  110.            <Item   name="TDLopenparty"  title="PARTY"   image="images/party-open.png"  
  111.                     location="index.jsp"/>  
  112.        Item>  
  113.        <Item    name="TDLexit"  title="EXIT"  
  114.                 image="images/exit.png"   location="index.jsp"/>  
  115.     Menu>  
  116. MenuConfig>  

 

7、在jsp文件(如Struts-tiles中使用了menu.jsp)中加入,可以通过对useMenuDisplayer来设置菜单的显示风格。

<o:p>
  1. <%@ page contentType="text/html; charset=UTF-8" %>  
  2. <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>  
  3. <%@ taglib uri="http://struts-menu.sf.net/tag" prefix="menu" %>  
  4. <%@ taglib uri="http://struts-menu.sf.net/tag-el" prefix="menu-el" %>  
  5. <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>  
  6. <%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>  
  7. <%@ taglib uri="http://java.sun.com/jstl/sql" prefix="sql" %>  
  8.   
  9. <html>  
  10.   <head>  
  11.       <title>Struts Menu Examplestitle>  
  12.       <link rel="stylesheet" type="text/css" media="screen"  
  13.         href="styles/global.css" />  
  14.   head>  
  15. <body>  
  16.   
  17. <div id="content">  
  18.     <script type="text/javascript" src="./scripts/coolmenus3.js">script>  
  19.     <script type="text/javascript" src="./scripts/coolmenu-config.js">script>  
  20.        
  21.     <menu:useMenuDisplayer name="CoolMenu" bundle="org.apache.struts.action.MESSAGE">  
  22.         <menu:displayMenu name="ToDoListMenuFile"/>  
  23.         <menu:displayMenu name="ToDoListMenuEdit"/>  
  24.         <menu:displayMenu name="CaseDetailMenuCase"/>  
  25.     <menu:useMenuDisplayer>  
  26. >   
  27. >   8、可以在浏览器中显示了。
  28. >  

 

 

 

</o:p>
分享到:
评论
6 楼 guoyangjie 2011-01-11  
忘了留下扣扣和邮箱了扣扣是:734868158邮箱是:guoyangjie0724@163.com
5 楼 guoyangjie 2011-01-11  
在线吗?在的话帮我一个忙,我第一次在项目中用,希望你能多多帮助一下。。
4 楼 liufangbj 2009-01-15  
抱着试试看的心里,不过谢谢了~~~
3 楼 大力水手 2008-10-07  
不知在实际项目中是否真能实用? 如何动态构造菜单呢?
2 楼 ximin520 2007-09-07  
找了好多 都不能用 希望这次可以
哈哈~~~
1 楼 yeafee 2007-04-16  
谢谢,第一次动手来做,来弄下来看看。

相关推荐

    SQL入门指南:从零开始掌握数据库操作.pdf

    内容概要:本文档是一份详细的SQL入门指南,旨在帮助初学者全面掌握SQL的基本概念和技术。首先介绍了SQL的基础知识及其重要性,解释了为什么学习SQL对数据分析和软件开发至关重要。接着详细讲解了如何快速搭建SQL环境,包括在线沙箱和本地安装两种方式。随后深入探讨了SQL的基础语法,如创建数据库和表、插入、查询、更新和删除数据的操作。进一步解析了核心操作,如复杂的查询语句结构、多表关联查询以及实用的功能,如条件表达式、日期处理和字符串操作。最后提供了新手常见问题的解决方案和性能优化建议,并推荐了一些学习资源。 适合人群:对数据库操作感兴趣的初学者,尤其是希望从事数据分析或软件开发的人士。 使用场景及目标:适用于想要系统学习SQL基础知识和核心操作的个人,目标是在实践中掌握SQL技能,能够独立进行数据库管理和操作。 其他说明:文档不仅涵盖了理论知识,还提供了大量实例和练习建议,帮助读者更好地理解和应用所学内容。

    计算机二级考试C语言历年真题及答案.pdf

    计算机二级考试C语言历年真题及答案.pdf

    flink 自定义连接器

    flink 自定义连接器

    软考网络工程师视频教程及复习指导资料.zip

    软考网络工程师视频教程及复习指导资料,含视频教程、历年真题、模拟试题等。

    计算机二级access历年笔试真题及答案.pdf

    计算机二级access历年笔试真题及答案.pdf

    三菱PLC FX3U控制松下伺服的多轴联动解决方案:基于功能块的高效编程与调试

    内容概要:本文详细介绍了使用三菱PLC FX3U和1PG定位模块控制四个松下伺服电机的项目经验。项目将常用的JOG、HOME、定位等功能封装成独立的功能块(FB),并通过结构化文本(ST)编写程序。每个功能块不仅包含了核心逻辑,还进行了详细的异常处理和参数映射,确保系统的稳定性和易用性。此外,文章还涵盖了电气图纸、触摸屏配方管理以及硬件配置等方面的注意事项,提供了完整的项目实施指南。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对三菱PLC和松下伺服有一定了解的人群。 使用场景及目标:适用于需要高精度多轴联动控制的工业应用场景,如数控机床、机器人等。目标是帮助工程师快速搭建稳定的控制系统,减少调试时间和复杂度。 其他说明:文中提供的代码片段和硬件配置建议经过实际验证,能够有效提高项目的成功率。同时,文章强调了良好的注释习惯和详细的文档记录对于后续维护的重要性。

    办公室网安全监控uptime-kuma,docker镜像离线压缩包

    办公室网安全监控uptime-kuma,docker镜像离线压缩包

    教程-typescript-简介和入门

    教程-typescript-简介和入门

    S7-1200 PLC五轴伺服运动控制项目:结构化编程与功能实现详解

    内容概要:本文详细介绍了基于西门子S7-1200 PLC控制五轴伺服系统的项目实施经验,涵盖手动模式、自动运行状态机、伺服模式切换、断电保持以及报警处理等多个关键环节。作者通过结构化编程思想,将复杂的多轴控制系统分解为多个独立的功能块,确保系统稳定性和可扩展性。文中不仅展示了具体代码实现,还分享了许多实用技巧,如通过枚举类型构建状态机、利用保持存储器实现断电位置记忆、采用环形缓冲区记录报警信息等。 适合人群:从事工业自动化控制领域的工程师和技术人员,尤其对PLC编程和伺服控制有一定基础的人群。 使用场景及目标:适用于需要进行复杂多轴运动控制的工业应用场景,旨在提高系统的可靠性、灵活性和易维护性。通过学习本文,读者可以掌握如何运用结构化编程方法优化PLC程序设计,提升工作效率并减少错误发生。 其他说明:文章强调了良好的编程习惯对于大型工程项目的重要性,提倡模块化、组件化的设计理念。此外,还提到了一些常见的陷阱及其解决方案,帮助初学者避开弯路。

    win32汇编环境,网络编程入门之十五

    win32汇编环境,网络编程入门之十五

    12届嵌入式省赛题1111111

    12届嵌入式省赛题1111111

    Cadence两级放大电路版图设计与LVS/DRC验证的技术解析

    内容概要:本文详细记录了作者在Cadence平台中完成一个两级放大电路版图设计的过程,涵盖了从初步设计到最终通过LVS(Layout vs Schematic)和DRC(Design Rule Check)验证的所有步骤。文章首先介绍了电路的基本结构和参数设定,如共源放大器和共栅放大器的关键参数调整,以及在Virtuoso环境中进行的具体操作。接着,作者分享了在版图绘制过程中遇到的各种挑战及其解决方案,包括晶体管尺寸优化、走线布局、寄生参数控制、金属层间距调整等。此外,还特别强调了LVS和DRC验证中的常见问题及应对策略,如端口不匹配、器件参数偏差、金属密度规则等。最后,作者总结了一些实用的设计技巧和注意事项,为后续类似项目提供了宝贵的经验。 适合人群:从事集成电路设计的专业人士,尤其是对模拟电路版图设计感兴趣的工程师和技术爱好者。 使用场景及目标:帮助读者掌握Cadence环境下两级放大电路版图设计的方法,提高LVS和DRC验证的成功率,减少设计周期内的返工次数,提升设计效率。 其他说明:文中提到的具体数值和代码片段仅供参考,在实际应用中需要根据具体的工艺规则和个人需求进行适当调整。

    内江市乡镇边界,矢量边界,shp格式

    矢量边界,行政区域边界,精确到乡镇街道,可直接导入arcgis使用

    器件模型与参数提取工具,由中国科学院微电子研究所开源的针对后摩尔时代新型器件模型与参数提取工具matlab (2).zip

    matlab

    卒中风险预测数据集,脑中风预测数据集,包含影响中风风险的指标(包含16个特征和2个目标变量),适用于机器学习和数据分析

    这个Stroke Risk Prediction Dataset(卒中风险预测数据集)的版本2旨在通过症状、人口统计学和基于医学文献的风险模型来预测卒中风险。相比于版本1,它在多个方面进行了显著改进,包括年龄相关的症状概率、性别特异性风险调整以及经过医学验证的特征工程等。 主要增强点: 年龄准确的风险建模:卒中风险随着一个S型曲线增加,在50岁之后急剧上升,这反映了现实世界的流行病学趋势。 性别特定的风险:60岁以下的男性风险是女性的1.5倍,而60岁以上的女性(绝经后的激素变化)风险比同龄男性高1.8倍。 平衡且扩展的数据集:样本量从10,000增加到35,000,以提高模型的普遍性和捕捉罕见的症状组合。其中50%为卒中风险≥50%,另外50%为卒中风险<50%。 数据集结构 该数据集包含16个特征和2个目标变量(分类目标和回归目标),涉及年龄、性别、各种二元症状指标(如胸痛、呼吸急促、心律不齐等)、是否处于风险中(二元分类目标)以及卒中风险百分比(回归目标)。 医学有效性 数据集基于同行评审的医学文献构建,症状概率、风险权重及人口统计关系直接来源于临床指南和流行病学研究。例如,

    搭建环境:JDK-17

    搭建环境:JDK-17

    流程图111111111111111

    流程图111111111111111

    若夏小说2.2专业版内核 WAP端+电脑端+在线充值+关关采集器(送规则)

    这款模板需要2.2的程序,模板的仿照若夏文学网,模板以粉色彩蝶为主,也就女生版的,可以做言情类的原创站,程序带 有充值、打赏、vip等原创功能,凡是购买本模板送2.2程序,还送手机独立板子及关关采集器。2.2是官方的没有漏洞、后 门什么的,可以放心使用! 安装说明: 详细见压缩包,要求PHP5.3以上环境。

    2023年5月房地产行业舆情监测报告:政策、品牌及重点事件分析

    本报告由艾普思咨询发布,详细分析了2023年5月中国房地产行业的舆情状况。主要内容涵盖行业发展简报、舆情态势(声量/情感分布、来源/媒介分布、典型报道、地域分布)、品牌舆情关注度TOP10以及重点舆情话题和事件。报告指出,5月份房地产行业舆情声量显著上升,达到27,344,454篇次,主要受政策调整、企业动态等因素影响。此外,报告特别关注了万达集团大规模裁员传闻和光明房地产集团原董事长沈宏泽接受审查调查两大重点事件。 房地产从业者、投资者、政策研究者及相关媒体从业人员。

Global site tag (gtag.js) - Google Analytics