开发嵌套的标签:haveChildTag 实际工程中往往需要多个标签来配合完成一定的功能,嵌套的标签存在父子关系,其中,父为外层标签,子为内层标签。本实例将用两个简单的标签来演示,父标签则作出逻辑判断,如果isOutput属性为true,则输出实例108中的标签helloTag;如果为false,则不输出。 (1)第一步:开发标签实现类。 内层的标签helloTag在实例108中已有,此处不再列出。 haveChildTag.java package hello; import javax.servlet.jsp.tagext.BodyTagSupport; public class haveChildTag extends BodyTagSupport { private boolean isOutput;//是否输出子标签内容 //----标签开始时调用此方法------- public int doStartTag(){ if(isOutput) return EVAL_BODY_INCLUDE; else return SKIP_BODY; } //----标签结束时调用此方法------- public int doEndTag(){ try{ if(bodyContent!=null) bodyContent.writeOut(bodyContent.getEnclosingWriter()); }catch(Exception e){ System.out.println(e); } return EVAL_PAGE; } public boolean getIsOutput() { return isOutput; } public void setIsOutput(boolean isOutput) { this.isOutput = isOutput; } } (2)第二步:编写标签描述tld文件。 本例在myTag.tld文件中增加内容。在与之间增加的如下内容:
haveChildTag
hello.haveChildTag
jsp
isOutput true true (3)第三步:在Web应用的web.xml文件中声明标签库引用。 同样,本例与本章前面的实例使用同一个tld文件,此处不必再修改。 (4)第四步:在JSP页面中声明并调用标签。 useHaveChildTag.jsp
输出子标签时的结果:
不输出子标签时的结果:
本文介绍了如何在JSP中开发嵌套的自定义标签,通过一个名为`haveChildTag`的父标签实现逻辑判断。当`isOutput`属性为true时,展示子标签`helloTag`;否则跳过。详细步骤包括编写标签实现类、创建TLD文件以及在JSP页面中使用标签的示例。
350

被折叠的 条评论
为什么被折叠?



