自定义标签库开发与设计模式介绍
自定义标签库开发
在开发 JSP 应用时,自定义标签库是一项非常有用的技术,它可以帮助我们将常用的功能封装成标签,提高代码的复用性和可维护性。
隐式标签示例
以下是一个简单的隐式标签代码示例:
int scopeConstant = getScopeAsInt();
out.print(pageContext.getAttribute(attributeName, scopeConstant));
return SKIP_BODY;
}
catch(Exception e)
{
throw new JspException("Error in Implicit.doAfterBody()");
}
}
}
上述代码有三个要点值得注意:
1. 为每个属性实现了 setter 方法,但没有定义私有实例变量来存储每个属性,而是使用 TagSupport
类维护的哈希表以键值对的形式存储属性。
2. getScopeAsInt()
是一个实用方法,它返回一个整数常量,该常量表示存储在哈希表中作为字符串的作用域名称。这些常量已经由 PageContext
定义,并由 PageContext.getAttribute(String name, int scope)
方法使用。
3. 在 doStartTag()
方法中,使用 PageContext.g