• 自定义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>
  • 相关阅读:
    jssdk语音识别调用(基于easywechat)
    mysql常见问题
    JAVA常见面试题
    使用HttpClient实现文件上传和下载
    mysql之数据去重并记录总数
    mysql的BLOB类型问题
    Velocity入门总结
    关于JSON的一些问题
    QLExpress语法介绍
    史上最全的Maven Pom文件标签详解(转)
  • 原文地址:https://www.cnblogs.com/clovem/p/5919134.html
Copyright © 2020-2023  润新知