jsp自定义标签跟着走


<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.csdn.net/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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值