• 简单的带有属性的自定义标签


    认识自定义标签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");
    
        }
    
    
    }

    ⑤.结果

  • 相关阅读:
    go字面量常量
    go ssh开箱即用,注意几点
    dtle 3.x数据同步
    大厂晋升指南:材料准备,PPT 写作和现场答辩
    电商广告营销中,有哪些常见公式和优化手段?
    用Turkle库和OpenCV图像识别画一个冰墩墩
    gRPC in ASP.NET Core 3.x Protocol Buffer(3)更新消息类型 yangxu
    Rust 使用 dotenv 来设置环境变量 yangxu
    以正确的方式下载和配置 ASP.NET Core 官方源码 yangxu
    ASPOSE.Cells & ASPOSE.Words 操纵Excel和Word文档的 .NET Core 实例 yangxu
  • 原文地址:https://www.cnblogs.com/realshijing/p/7890551.html
Copyright © 2020-2023  润新知