zoukankan      html  css  js  c++  java
  • 简单的带有属性的自定义标签

    认识自定义标签http://www.cnblogs.com/realshijing/p/7890155.html

    带属性的自定义标签:

    带有属性的自定义标签,必须在自定义SimpleTag子类中为该属性设置Set方法。

    ①. 先在标签处理器类中定义 setter 方法. 建议把所有的属性类型都设置为 String 类型.

    private String value;
    private String count;
    
    public void setValue(String value) {
    this.value = value;
    }
    
    public void setCount(String count) {
    this.count = count;
    }

    ②. 在 tld 描述文件中来描述属性:

     <!-- 描述当前标签的属性 -->
            <attribute>
                <!-- 属性名 -->
                <name>value</name>
                <!-- 该属性是否必须 -->
                <required>true</required>
                <!-- rtexprvalue: runtime expression value 当前属性是否可以接受运行时表达式的动态值 -->
                <!--例如El表达式-->
                <rtexprvalue>true</rtexprvalue>
            </attribute>
    
            <attribute>
                <name>count</name>
                <required>false</required>
                <rtexprvalue>false</rtexprvalue>
            </attribute>

    ③. 在页面中使用属性, 属性名同 tld 文件中定义的名字. 

      <nchu:hello value="${param.name}" count="10"/>

    ④.标签处理器类对属性值进行处理

    package yang.mybatis.tag;
    import javax.servlet.jsp.JspContext;
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.PageContext;
    import javax.servlet.jsp.tagext.JspFragment;
    import javax.servlet.jsp.tagext.JspTag;
    import java.io.IOException;
    
    /**
     * Created by yangshijing on 2017/11/24 0024.
     */
    public class HelloSimpleTag implements javax.servlet.jsp.tagext.SimpleTag{
        private  PageContext pageContext;
        private  String value;
        private  String count;
    
        public void setCount(String count) {
            this.count = count;
        }
    
        public void setValue(String value) {
            this.value = value;
        }
        @Override
        public void doTag() throws JspException, IOException {
            pageContext.getOut().print("value :" + value + " count: " +count);
        }
    
        @Override
        public void setParent(JspTag jspTag) {
            System.out.println("setParent");
    
        }
    
        @Override
        public JspTag getParent() {
            System.out.println("getParent");
            return null;
        }
    
        @Override
        public void setJspContext(JspContext jspContext) {
            pageContext = (PageContext) jspContext;
        }
    
        @Override
        public void setJspBody(JspFragment jspFragment) {
            System.out.println("setJspBody");
    
        }
    
    
    }

    ⑤.结果

  • 相关阅读:
    Log4Net 配置详解
    .Net Core 获取应用物理路径的常见问题
    Js/Jquery获取iframe中的元素
    Ztree树使用详解
    【解决】nginx + socket.io ,能连接但不响应事件
    基础文档官方链接
    位运算
    Java基础之集合框架--Collections.reverse()方法
    Android动画攻略—帧动画、补间动画、属性动画
    [转]京东mPaaS移动日志建设与应用
  • 原文地址:https://www.cnblogs.com/realshijing/p/7890551.html
Copyright © 2011-2022 走看看