简单标签整理
由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推广,SUN公司为降低标签技术的学习难度,在JSP2.0中定义了一个更为简单、便于编写和调用的SimpleTag借口来实现标签的功能。实现SimpleTag借口的标签通常成为简单标签。简单标签共定义了5个方法:
SetJspContext方法
SetParent和getParent方法
SetJspBody方法
Dotage方法
Invoke方法详解
JspFragment.invoke方法可以说是JspFragment最重要的方法,利用这个方法可以控制是否执行和输出标签题的内容、是否迭代执行标签体的内容或对标签体的内容或对标签体的执行结果进行修改在输出。例如:
在标签处理器中如果没有调用JspFragment.invoke方法,其结果就相当于忽略标签题的内容:
在标签处理器中重复调用JspFragment.invoke方法,则标签体内容将会被重复执行;
若想在标签处理器中修改标签题内容,只需在调用invoke方法是指定一个可取出结果数据的输出刘对象(例如StringWriter),让标签体的执行结果输出到该输出刘对象中,然后从输出刘对象中去除数据进行修改后再输出到目标设备,即可达到修改标签题的目的。
开发带属性的标签
自定义标签可以定义一个或多个属性,这样,在JSP页面中应用自定义标签是就可以设置这写属性的值,通过这些属性为标签处理器传递参数信息,从而提高标签的灵活性和复用性。
要想让一个自定义标签具有属性,通常需要完成两个任务:
在标签处理器中编写每个属性对应的setter方法
在TLD文件中表述标签的属性
为自定义标签定义属性是,每个属性都必须按照JavaBean的属性命名方式,在标签处理器中定义属性名对应的setter方法,用来接受JSP页面调用自定义标签是传递进来的属性值。例如属性url,在标签处理器类中就要定义相应的setUrl(String url)方法。
在标签处理器中定义相应的set方法后,JSP引擎在解析执行开始标签前,也就是调用doStartTag方法前,会调用set属性方法,为标签设置属性。