JSP自定义标签如何输出标签体的内容
1、在上文中我们已经介绍了自定义标签的使用,那么在自定义标签中如何输出标签体和标签之外的内容呢?我们先在.tld文件中定义一个标签名字为test,然后在jsp文件中引用该标签,下图是标签的使用以及项目的文档结构。


3、我们在jsp中使用该自定义标签demo,并在标签中任意给定一个标签体(我爱北京),然后在标签之外再输入一些文字。那么如何控制标签体外的内容不输出呢?我们需要修改DemoTag2中的doTag()方法,在方法的末尾抛出一个SkipPageException(),之后便不会输出标签体的内容。我们启动tomcat后访问该jsp页面可以看到效果,这里不再展示了。

4、接下来我们介绍如何循环输出标签体的内容,同样我们需要修改DemoTag2中的doTag()方法,循环调用invoke(null)方法即可,在浏览器中输出的结果如下图所示。

5、接下来我们介绍如何改变标签体的内容,我们首先要获取标签体的内容,并使用一个临时容器来放标签体的内容,接着我们从临时容器中取出标签体的内容并且修改输出,同时我们也输出未修改前的标签体内容作为对比,如下图所示。

6、小面我们介绍自定义有属性的标签,我们在DemoTag2这个类中定义两个属性name和age,然后然后编写setter方法,当用户通过标签设置属性时,就会调用其中的setter方法完成属性的赋值,代码如下图所示。


