zoukankan      html  css  js  c++  java
  • 自定义jsp标签

    1.类:

    package ===============================;
    
    import javax.servlet.jsp.JspTagException;
    import javax.servlet.jsp.tagext.BodyTagSupport;
    
    public class DCAclTag extends BodyTagSupport {
    
        private static final long serialVersionUID = 1L;
    
        /**
         * 传入进来的值,权限判断需要的条见
         */
        private int control;
        private int permission;
    
        public int getControl() {
            return control;
        }
    
        public void setControl(int control) {
            this.control = control;
        }
    
        public int getPermission() {
            return permission;
        }
    
        public void setPermission(int permission) {
            this.permission = permission;
        }
    
        /**
         * doStartTag方法,如果value为true,那么 就计算tagbody的值,否则不计算body的值。
         */
        public int doStartTag() throws JspTagException {
            if (PermissionUtil.checkPermission(permission, control)) {
                return EVAL_BODY_INCLUDE;
            } else {
                return SKIP_BODY;
            }
        }
    
        /**
         * 覆盖doEndTag方法
         */
        public int doEndTag() throws JspTagException {
            try {
                if (bodyContent != null) {
                    bodyContent.writeOut(bodyContent.getEnclosingWriter());
                }
            } catch (java.io.IOException e) {
                throw new JspTagException("IO Error: " + e.getMessage());
            }
            return EVAL_PAGE;
        }
    
    }

    在WEB-INF下的配置文件dc.tdl

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
        version="2.0">
        <description>A tag library exercising SimpleTag handlers.</description>
        <tlib-version>1.0</tlib-version>
     
          <short-name>dctag</short-name>
          <uri>http://www.dc.com/tags</uri>
          <description>
            dctag
          </description>
     
        <tag>
           <name>acl</name>
           <tag-class>com.dc.platform.ss.permission.DCAclTag</tag-class>
           <body-content>jsp</body-content>
           <attribute>
                 <name>control</name>
                 <required>true</required>
                 <rtexprvalue>true</rtexprvalue>
           </attribute>
           <attribute>
                 <name>permission</name>
                 <required>true</required>
                 <rtexprvalue>true</rtexprvalue>
           </attribute>
       </tag>
    </taglib>

    web.xml下的配置:

        <taglib>
            <taglib-uri>http://www.dc.com/tags</taglib-uri>
            <taglib-location>/WEB-INF/dc.tld</taglib-location>
        </taglib>

    页面调用: 引入改自定义标签

    <%@ taglib prefix="dc" uri="http://www.dc.com/tags" %>
    
    <dc:acl permission="<%=11%>" control="<%=aclState %>">    
        <li><a class="edit" href="s?md=${module.sn}&ac=turnNotice&rowId={rowid}" target="dialog" width="500" height="220" title="确定要转入公告吗?"><span>转入公告</span></a></li>
        <li class="line">line</li>
    </dc:acl>
  • 相关阅读:
    Servlet总结06——servlet过滤器
    jdbc 事务及事务隔离
    集群中几种session同步解决方案的比较[转]
    Servlet总结05——servlet监听器
    Servlet总结(系列文章)
    Eclipse导入Tomcat源码
    Servlet总结02——请求转发
    Servlet总结01——servlet的主要接口、类
    [ lucene其他 ] 几种常见的基于Lucene的开源搜索解决方案对比[转]
    Servlet总结04——注意Servlet单实例的线程安全性
  • 原文地址:https://www.cnblogs.com/clovem/p/5919134.html
Copyright © 2011-2022 走看看