三种使用Struts 2实现树状菜单的方式.docx
- 文档编号:23300100
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:17
- 大小:21.57KB
三种使用Struts 2实现树状菜单的方式.docx
《三种使用Struts 2实现树状菜单的方式.docx》由会员分享,可在线阅读,更多相关《三种使用Struts 2实现树状菜单的方式.docx(17页珍藏版)》请在冰豆网上搜索。
三种使用Struts2实现树状菜单的方式
三种使用Struts2实现树状菜单的方式
Struts2树状菜单实现
一.概要:
这篇文章是自己在学习struts2时从struts2的官方英文文档实例中整理出来的,此处介绍三种Struts2树状菜单的实现方式
分别是:
静态,动态,动态Ajax三种方式.
以下实例均在windowsXpsp2+Struts2+MyEcliplse6.01+Tomcat6.0.14+JDK1.6.0_03
下调试通过,项目名称为study3,包名为com.zhang.struts3
这三种实例用到的包文件(,jar包)如下:
commons-io-1.3.2.jar
ognl-2.6.11.jar
struts2-core-2.1.2.jar
struts2-dojo-plugin-2.1.2.jar
xwork-2.1.1.jar
二.具体实现
1.静态指单独使用struts2的tree标签脚本实现的.如以下文件treeStatic.jsp
此文件不需要任何Action类支持,启动Tomcat后在地址栏中输入:
http:
//127.0.0.1:
8080/study3/treeStatic.jsp就行.
*****treeStatic.jsp********************************************************************
1.<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
2.<%@taglib prefix="s" uri="/struts-tags"%>
3.<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
4.<%
5. String path = request.getContextPath();
6. String basePath = request.getScheme() + ":
//"
7. + request.getServerName() + ":
" + request.getServerPort()
8. + path + "/";
9.%>
10.
11.
12. head /> 13. 14.
15.
16.
28.
29.
30.
31. Please click on any node on the tree.
32.
33.
left; margin-right:
50px;">
34. tree label="软件工程" templateCssPath="/struts/tree.css" 35. showRootGrid="true" showGrid="true" treeSelectedTopic="treeSelected"> 36. treenode label="开发工具"> 37. treenode label="java" id="grandchild1Id" /> 38. treenode label="c++" id="grandchild2Id" /> 39. treenode label="delphi" id="grandchild3Id" /> 40. treenode> 41. treenode label="编程思想" id="child2Id" /> 42. treenode label="数据结构" id="child3Id" /> 43. treenode label="设计模式" id="child4Id" /> 44. treenode label="相关框架插件" id="child5Id"> 45. treenode label="Dojo" id="gChild1Id" /> 46. treenode label="Hibernate" id="gChild2Id" /> 47. treenode> 48. tree> 49.
50.
51.
******************************************************************************
2.动态树状菜单:
地址栏访问方法http:
//127.0.0.1:
8080/study3/tree/showDynamicTreeAction.action
具体需要如下文件:
struts2的类库文件即与struts2相关的包文件,web.xml,struts.xml,动态树状菜单的显示页面treeExampleDynamic.jsp,
辅助显示页面:
dynamicTreeSelect.jsp,动态Action类文件DynamicTreeSelectAction.java,
提供数据的Bean类文件:
Category.java,
******************************************************************************
所需要的包文件如下:
******************************************************************************
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
freemarker-2.3.12.jar
ognl-2.6.11.jar
struts2-core-2.1.2.jar
xwork-2.1.1.jar
struts2-dojo-plugin-2.1.2.jar
******************************************************************************
web.xml配置文件
*****web.xml******************************************************************
1.
xml version="1.0" encoding="UTF-8"?
>
2. 3. xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" 4. xsi: schemaLocation=" 5. 6. 7. 8. 9. org.apache.struts2.dispatcher.FilterDispatcher 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
******************************************************************************
在此struts.xml配置文件中我将动态树状菜单以及动态Ajax树状菜单的配置内容写在了这一个
配置文件中,其中动态树状菜单需要的action有dynamicTreeSelectAction,showDynamicTreeAction
动态Ajax树状菜单需要的action有dynamicTreeSelectAction,showDynamicAjaxTreeAction,
getNodes,这两个实例共用了提供数据的bean类文件Category.java文件.同时它们共用了
dynamicTreeSelectAction,但用于显示的Action类文件分别用了自己的Action类文件.
******************************************************************************
*******struts.xml***************************************************************
1.
xml version="1.0" encoding="UTF-8" ?
>
2.
DOCTYPE struts PUBLIC
3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4. "http:
//struts.apache.org/dtds/struts-2.0.dtd">
5.
6. 7. namespace="/tree"> 8. 9. class="com.zhang.study3.DynamicTreeSelectAction"> 10. 11. 12. 13. class="com.zhang.study3.ShowDynamicTreeAction"> 14. 15. 16. 17. 18. 19. 20. class="com.zhang.study3.ShowAjaxDynamicTreeAction"> 21. 22. /treeExampleAjaxDynamic.ftl 23. 24. 25.
26.
******************************************************************************
********treeExampleDynamic.jsp***************************************************
1.<%@ page language="java" pageEncoding="UTF-8"%>
2.<%@taglib prefix="s" uri="/struts-tags"%>
3.<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
4.
5.
6.
7. head /> 8. 9.
10.
22.
left; margin-right:
50px;">
23. tree id="tree" rootNode="%{treeRootNode}" 24. childCollectionProperty="children" nodeIdProperty="id" 25. nodeTitleProperty="name" treeSelectedTopic="treeSelected"> 26.
tree>
27.
28.
29. Please click on any of the tree nodes.
30.
31.
32.
******************************************************************************
******dynamicTreeSelect.jsp***************************************************
1.<%@ page language="java" pageEncoding="UTF-8"%>
2.<%@taglib prefix="s" uri="/struts-tags" %>
3.Id:
property value="%{nodeId}" /> 4.Name: property value="%{nodeName}" /> (注: 此文件就这三行代码负责将你选择的树状菜单相应结点信息如节点Id值与节点名称显示 在.jsp页面上.) ****************************************************************************** 用于生成树状菜单的Action类文件 ******DynamicTreeSelectAction.java******************************************** 1.package com.zhang.study3; 2. 3.import com.opensymphony.xwork2.ActionSupport; 4.import com.zhang.study3.Category; 5.public class DynamicTreeSelectAction extends ActionSupport { 6. 7. private long nodeId; 8. private Category currentCategory; 9. 10. public void setNodeId(long nodeId) { 11. this.nodeId = nodeId; 12. } 13. public long getNodeId() { 14. return nodeId; 15. } 16. 17. public String execute() throws Exception { 18. currentCategory = Category.getById(nodeId); 19. return SUCCESS; 20. } 21. 22. public String getNodeName() { 23. return currentCategory ! = null ? currentCategory.getName() : "Node not found"; 24. } 25.} ****************************************************************************** 提供数据的bean类文件 ****Category.java************************************************************* 1.package com.zhang.study3; 2. 3.import java.util.ArrayList; 4.import java.util.HashMap; 5.import java.util.List; 6.import java.util.Map; 7. 8.public class Category { 9. private static Map 10. static { 11. new Category(1, "省总公司",
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 三种使用Struts 2实现树状菜单的方式 使用 Struts 实现 树状 菜单 方式