JavaWeb_带属性的自定义标签

1)setJspContext:一定会被JSP引擎所调用,先于doTag,把代表JSP引擎的pageContext传给标签处理器类

    private PageContext pageContext;
    /**
     * JSP引擎调用,把代表JSP页面的PageContext对象传入
     * PageContext可以获取JSP页面的其他8个隐含对象
     * 所以凡是JSP页面可以做的标签处理器都可以完成
     * @param jspContext
     */
    @Override
    public void setJspContext(JspContext jspContext) {
        System.out.println("setJspContext");
        System.out.println(jspContext instanceof PageContext);
        this.pageContext = (PageContext) jspContext;
    }

  

2)带属性的自定义标签

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

 private String value;
    private String count;

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

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

  

<2>在tld描述文件中来描述属性:

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

  

<3>在页面中使用属性,属性名同tld文件中定义的名字

<yhs:hello value="${param.name}" count="10"></yhs:hello>
原文地址:https://www.cnblogs.com/yangHS/p/11177453.html