在main.jsp中,导入dtree.js和dtree.css,直接使用自定义标签<s:TreeChk />,代码如下:
<%@ page language="java" contentType="text/html;charset=GBK"%>
<%@ include file="/inc/head.inc"%>
<html>
<head>
<title>left tree</title>
<link rel="stylesheet" href="css/dtree.css" type="text/css" />
<script>
contextPath = "<%=contextPath%>/";
</script>
<script type="text/javascript" src="js/dtree.js"></script>
</head>
<body style="padding:0px;">
<table cellpadding=0 cellspacing=0 border=0 width=100% height=100%>
<tr>
<td width=195 style="border-right:#e3e3e3 solid 2px; font-size:12px; background:#FFFFFF; color:#000000;" valign=top>
<div style="width:195px; height:100%; overflow:auto; background:#fff; border-top:#e3e3e3 solid 2px;">
<p>
<a href="javascript: d.openAll();">展开</a> | <a href="javascript: d.closeAll();">折叠</a>
</p>
<s:TreeChk />
</div>
</td>
<td valign=top>
<iframe framespacing="0" frameborder="0" Scrolling="auto" width=100% height=100% name="mywin" id="IFRM_LEFT_BOTTOM" src="new.html"></iframe>
</td>
</tr>
</table>
</body>
</html>
其中head.inc中,导入标签<%@ taglib uri="/WEB-INF/commons" prefix="s" %>
,代码如下:
<%@ page language="java" contentType="text/html;charset=GBK"%>
<%@ taglib uri="/WEB-INF/commons" prefix="s" %>
<%
String contextPath = request.getContextPath();
%>
<script type="text/javascript" language="javascript">
var contextPath = "<%= contextPath %>";
</script>
在/web-inf/commons下,定义了改标签,如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.2</jspversion>
<shortname></shortname>
<tag>
<name>TreeChk</name>
<tagclass>
common.tree.TreeChkTag
</tagclass>
<bodycontent>JSP</bodycontent>
<info>Check if the user have the audit's purview.</info>
</tag>
</taglib>
在该tld文件中,定义了标签所指定的class文件,common.tree.TreeChkTag
TreeChkTag.java的内容如下:
package common.tree;
import javax.servlet.jsp.tagext.TagSupport;
/**
* Title: 系统菜单树自定义标签 Description:系统菜单树显示(系统左侧)
*/
public class TreeChkTag extends TagSupport {
public int doStartTag() {
return SKIP_BODY;
}
public int doEndTag() {
try {
pageContext.getOut().print("<script type=/"text/javascript/"> /n");
pageContext.getOut().print(" target = /"mywin/";");
pageContext.getOut().print(" d = new dTree('d');");
StringBuffer s = new StringBuffer();
//这是顶级菜单
s.append(" d.add('").append("1").append("',").append("-1");
s.append(",'").append("顶级菜单").append("','");
s.append("');");
//这个是一级菜单
s.append(" d.add('").append("10").append("',").append("1");
s.append(",'").append("一级菜单").append("','");
s.append("');");
//这个是二级菜单
s.append(" d.add('").append("100").append("',").append("10");
s.append(",'").append("二级菜单").append("','");
s.append("http://www.baidu.com").append("','',target);");
//这个是另一个一级菜单,带链接
s.append(" d.add('").append("11").append("',").append("1");
s.append(",'").append("一级菜单").append("','");
s.append("http://www.google.com").append("','',target);");
//这个是另一个二级菜单,带链接
s.append(" d.add('").append("101").append("',").append("11");
s.append(",'").append("二级菜单").append("','");
s.append("http://www.qq.com").append("','',target);");
pageContext.getOut().print(s.toString());
pageContext.getOut().print("document.write(d);</script>");
} catch (Exception e) {
return SKIP_BODY;
}
return EVAL_PAGE;
}
}
此外,还需要在项目下的web.xml文件中引入该标签,具体内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app >
<taglib id="TagLibRef_1101353531375">
<taglib-uri>/WEB-INF/commons</taglib-uri>
<taglib-location>
/WEB-INF/custom-tld/commons.tld
</taglib-location>
</taglib>
</web-app>
重在于自定义标签的使用,具体dtree的内容就不贴了。