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>