在实际开发中,往往需要多个标签的嵌套以完成一个任务,这样标签就存在父子关系。类似于下面:
<mt:if value="false">
<mt:out value="<%=outValue%>">
这些内容会显示在客户端。
</mt:out>
</mt:if>
在上面的标签中,<mt:switch>为父标签,<mt:case>为子标签,一个父标签可以嵌套多个子标签和HTML,Scriptlets等。
下面就来写一个这样的标签
ifTag.java
public class IfTag extends BodyTagSupport{
private boolean value;
public void setValue(boolean value){
this.value=value;
}
public int doStartTag() throws JspTagException{
if(value){
System.out.println("value is true");
return EVAL_BODY_INCLUDE;
} else{
System.out.println("value is false");
return SKIP_BODY;
}
}
public int doEndTag() throws JspTagException {
try {
if(bodyContent != null) {
bodyContent.writeOut(bodyContent.getEnclosingWriter());
}
} catch(java.io.IOException e){
throw new JspTagException("IO Error: " + e.getMessage());
}
return EVAL_PAGE;
}
}
Value为IfTag的属性。当为真时,那么就计算IfTagBody;如果为假,就忽略
因为IfTag标签中要嵌套了一个子标签,这个子标签用于输出一些信息到客户端。
下面的是IfTag中嵌套的子标签。
OutTag.java
public class OutTag extends TagSupport{
private Object value;
public void setValue(Object value){
this.value=value;
}
public int doStartTag() throws JspTagException {
return EVAL_BODY_INCLUDE;
}
public int doEndTag()throws JspTagException{
try{
System.out.println(value);
pageContext.getOut().write(value.toString());
}catch(IOException ex){
throw new JspTagException("Fatal error:hello tag conld not write to JSP out");
}
return EVAL_PAGE;
}
}
OutTag就是一个简单的不带Body的标签,它主要向客户端输出一些信息。
分享到:
相关推荐
4. **多级菜单**:支持嵌套子菜单,构建层次结构清晰的导航。 5. **事件处理**:绑定点击或其他用户交互事件。 在使用这个压缩包中的资源时,开发者需要将其解压,并将标签库导入到JSP项目中,然后在JSP页面中引用...
3. 子查询:了解如何在主查询中嵌套子查询,用于获取满足特定条件的数据。 4. 联合查询:学习UNION、UNION ALL、INTERSECT和EXCEPT操作,用于合并多个查询结果。 5. 视图和存储过程:创建和使用视图以简化数据访问,...
特点: 1:代码量少,学习成本低; 2:默认jsp语法标签方式,熟悉jsp的朋友可以直接...6:支持嵌套子模板,子模板默认(没有传递数据参数)是共享父模板数据,可以通过传参设置子模板使用的数据集。 7:支持动态导入
18. **浮动框架**:浮动框架`iframe`允许在浏览器窗口中嵌套子窗口,提供了一种在页面中展示多个独立内容的方式。 19. **FrontPage远程维护**:FrontPage可以用于Windows平台下IIS网站的远程维护,提供了一种直观的...