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");
    
        }
    
    
    }

    ⑤.结果

  • 相关阅读:
    Request源码总结
    jmeter并发顺序问题
    mysql函数应用
    读《飘》之后的感受
    itchat源码阅读一
    python将print的内容输出到txt文件
    说一下StoreBoard和纯代码编程各有什么好处吧
    CocoaPods 安装
    Silverlight调用WebSite类型的WebService,Debug时的跨域问题
    ComboBox的奇怪属性
  • 原文地址:https://www.cnblogs.com/realshijing/p/7890551.html
Copyright © 2011-2022 走看看