<script type="text/javascript"> google_ad_client = "pub-5033576919944123"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; //2007-10-24: csdn.blog google_ad_channel = "8548491739"; </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
第一步:写类,继承自TagSupport ,实现一些方法,如int doStartTag() 等,代码如下:
package wtc.jspTag;
import java.io.IOException;
import java.util.List;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* <p>
* @author wujy <br>
* @date 2007-11-1 <br>
* <p>
* 备注:<br>
* 1. <br>
* 2. <br>
* 3. <br>
* </p>
*
*/
public class PurviewTag extends TagSupport {
private static final long serialVersionUID = 9090686619873665127L;
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private final String defaultFunctionName = "purviewChecker";
private String functionName = null;
@SuppressWarnings("unchecked")
public int doStartTag() {
try {
JspWriter out = pageContext.getOut();
if(functionName == null || functionName.equals("")){
functionName = defaultFunctionName;
}
out.println("<script type=/"text/javascript/">");
out.print("var ");
out.print(functionName);
out.println(" = function(){");
out.print("var purviews = ['add']");
out.println(" ");
out.println("return {");
out.println("check : function(toCheck){");
out.println("for(var index=0; index<purviews.length; index++) {");
out.println("if (purviews[index] == toCheck){");
out.println("return true;");
out.println("}");
out.println("}");
out.println("return false;");
out.println("}");
out.println("};");
out.println("}();");
out.println("</script>");
} catch(IOException ioe) {
logger.debug("Error in Tag out.print.", ioe);
}
return(SKIP_BODY);
}
/**
* @return functionName
*/
public String getFunctionName() {
return functionName;
}
/**
* @param functionName 要设置的 functionName
*/
public void setFunctionName(String functionName) {
this.functionName = functionName;
}
}
第二步:写tld,放到与web.xml同目录,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>p</short-name>
<uri>http://www.youkuaiyun.com/tld/purview</uri>
<tag>
<name>purview</name>
<tag-class>net.gmcchr.privilege.PurviewTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>functionName</name>
<required>false</required>
</attribute>
</tag>
</taglib>
第三步:调用,如下:(注意有背景色的那些)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib uri="/WEB-INF/purview.tld" prefix="p" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'tryPurviewTag.jsp' starting page</title>
<p:purview functionName="purviewChecker"/>
</head>
<body>
<button οnclick="alert(purviewChecker.check('add'));">allow add?</button>
<button οnclick="alert(purviewChecker.check('del'));">allow del?</button>
<button οnclick="alert(purviewChecker.check('mod'));">allow mod?</button>
</body>
</html>
ok简单的就是这样.
<script type="text/javascript"> google_ad_client = "pub-5033576919944123"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; //2007-10-24: csdn.blog google_ad_channel = "8548491739"; </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>