JSP树形菜单的实现docWord文件下载.docx
- 文档编号:16431366
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:6
- 大小:17KB
JSP树形菜单的实现docWord文件下载.docx
《JSP树形菜单的实现docWord文件下载.docx》由会员分享,可在线阅读,更多相关《JSP树形菜单的实现docWord文件下载.docx(6页珍藏版)》请在冰豆网上搜索。
createTree(Tree,1,7);
//startsthetreeatthetopandopenitatnodenr.7
//-->
/div>
显然,如果用动态的脚本来初始化菜单数组(asp,jsp均可),那就可以很方便的实现动态的树型菜单了。
2。
jsp动态实现
分以下步骤实现动态的树型菜单:
1)在数据库建tree_info表,有nodeId,parentNodeId,nodeName,nodeUrl四个字段,来存储节点信息。
2)编写java类,用于从数据库找出节点信息,并且生成javascript脚本。
3)编写tag类。
用于封装逻辑,简化jsp的开发。
4)建一个web程序进行测试。
3。
详细过程
1)在数据库建表,脚本如下:
CREATETABLE`test`.`tree_info`(
`node_id`INTEGERUNSIGNEDNOTNULLDEFAULT-1,
`parent_id`INTEGERUNSIGNEDNOTNULLDEFAULT-1,
`node_name`VARCHAR(45)NOTNULL,
`ref_url`VARCHAR(45)NOTNULL,
PRIMARYKEY(`node_id`)
)
我使用mysql数据库,如果脚本细节有出入,请自行修改
按照上面的dTree示例插入数据
2)编写TreeInfo.java,这个类用于封装节点信息
packagecom.diegoyun.web.tree;
publicclassTreeInfo{
privateintnodeId=-1;
//nodeid
privateintparentId=-1;
//parentId
privateStringnodeName=null;
//nodename
privateStringurl=null;
//urlreferences
publicintgetNodeId(){
returnnodeId;
}
publicvoidsetNodeId(intnodeId){
this.nodeId=nodeId;
publicintgetParentId(){
returnparentId;
publicvoidsetParentId(intparentId){
this.parentId=parentId;
publicStringgetNodeName(){
returnnodeName;
publicvoidsetNodeName(StringnodeName){
this.nodeName=nodeName;
publicStringgetUrl(){
returnurl;
publicvoidsetUrl(Stringurl){
this.url=url;
编写TreeUtil.java,用于从数据库得到节点信息,封装到TreeInfo对象,并生成javascript脚本
TreeUtil.java
importjava.util.Collection;
importjava.util.ArrayList;
importjava.util.Iterator;
importjava.util.List;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.Connection;
importjava.sql.DriverManager;
publicclassTreeUtil{
publicstaticListretrieveNodeInfos(){
Listcoll=newArrayList();
StringdriverName="
com.mysql.jdbc.Driver"
Stringhost="
localhost"
Stringport="
:
3306"
StringserverID="
test"
StringuserName="
root"
StringuserPwd="
Stringurl="
jdbc:
mysql:
//"
+host+port+"
/"
+serverID;
Connectionconn=null;
PreparedStatementps=null;
ResultSetrs=null;
try{
Class.forName(driverName).newInstance();
conn=DriverManager.getConnection(url,userName,userPwd);
Stringsql="
select*fromtree_info"
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
TreeInfoinfo=null;
while(rs!
=null&
&
rs.next()){
info=newTreeInfo();
info.setNodeId(rs.getInt
(1));
info.setParentId(rs.getInt
(2));
info.setNodeName(rs.getString(3));
info.setUrl(rs.getString(4));
coll.add(info);
//
if(rs!
=null){
rs.close();
rs=null;
}
if(ps!
ps.close();
ps=null;
}catch(Exceptione){
System.out.println(e);
returncoll;
publicstaticStringcreateTreeInfo(Listalist){
StringBuffercontents=newStringBuffer();
contents.append("
--\n"
);
"
//createaarrayinjavascript
TreeInfoinfo=null;
for(intmax=alist.size(),i=0;
i<
max;
i++){
info=(TreeInfo)alist.get(i);
//defineelementsofarray
Tree["
contents.append(i);
]=\"
contents.append(info.getNodeId());
|"
contents.append(info.getParentId());
contents.append(info.getNodeName());
contents.append(info.getUrl());
\"
docment.writer(Tree);
returncontents.toString();
publicstaticvoidmain(String[]args){
Listalist=TreeUtil.retrieveNodeInfos();
TreeInfoinfo=null;
for(Iteratori=c.iterator();
i.hasNext();
){
info=(TreeInfo)i.next();
System.out.println("
*****"
+info.getNodeName());
System.out.println(TreeUtil.createTreeInfo(alist));
3)编写标签类
InitTreeTag.java
packagecom.diegoyun.web.taglibs;
importcom.diegoyun.web.tree.TreeUtil;
importjavax.servlet.jsp.tagext.TagSupport;
importjavax.servlet.jsp.JspException;
importjava.io.IOException;
publicclassInitTreeTagextendsTagSupport{
publicintdoEndTag()throwsJspException{
StringBuffertree=newStringBuffer();
tree.append("
scripttype=\"
text/javascript\"
\n"
tree.append(TreeUtil.createTreeInfo(TreeUtil.retrieveNodeInfos()));
pageContext.getOut().println(tree.toString());
}catch(IOExceptionioe){
ioe.printStackTrace();
returnsuper.doEndTag();
ShowTreeTag.java:
publicclassShowTreeTagextendsTagSupport{
StringBufferbuffer=showTree();
try{
pageContext.getOut().println(buffer.toString());
catch(IOExceptionioe){
privateStringBuffershowTree(){
StringBuffersb=newStringBuffer();
sb.append("
divclass=\"
tree\"
createTree(Tree);
returnsb;
}
标签的tld如下:
?
xmlversion="
1.0"
encoding="
ISO-8859-1"
?
DOCTYPEtaglib
PUBLIC"
-//SunMicrosystems,Inc.//DTDJSPTagLibrary1.2//EN"
"
taglib>
<
tlib-version>
1.0<
/tlib-version>
jsp-version>
1.2<
/jsp-version>
short-name>
tree<
/short-name>
--initTreeTag-->
tag>
name>
init<
/name>
tag-class>
com.diegoyun.web.taglibs.InitTreeTag<
/tag-class>
body-content>
empty<
/body-content>
/tag>
--ShowTreeTag-->
show<
com.diegoyun.web.taglibs.ShowTreeTag<
/taglib>
4)建立web过程,编写jsp进行测试。
index.jsp如下:
%@pagelanguage="
java"
%>
%@tagliburi="
/WEB-INF/tlds/tree.tld"
prefix="
html>
head>
title>
Treeexample<
/title>
metahttp-equiv="
Content-Type"
content="
text/html;
charset=iso-8859-1"
linkrel="
StyleSheet"
href="
tree.css"
type="
text/css"
src="
tree.js"
tree:
init/>
/head>
body>
b>
Treeexample:
/b>
br/>
show/>
/body>
/html>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP 树形 菜单 实现 doc