如何实现自定义标签开发中的if标签案例编写?

2026-05-20 23:582阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计646个文字,预计阅读时间需要3分钟。

如何实现自定义标签开发中的if标签案例编写?

我们开发了一种防骗链标签,接下来开发了一个我们在其他框架中常见的标签——if标签。通过自主研发if标签,我们理解了Sun公司的C:if标签。我们自主研发的if标签效果如下:%@“

前面我们开发了防盗链标签,接下来开发一个我们在其他框架中经常见到的标签-----if标签。 我们通过自己开发if标签,来理解sun公司的<c:if>标签。 我们自己开发的if标签的效果如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@taglib uri="/example" prefix="z" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>Hello</title> </head> <body> <z:if test="${user!=null}"> 欢迎您!(*^__^*) </z:if> <z:if test="${user==null}"> 您没有登录!~~(>_<)~~ </z:if> </body> </html>

首先我们创建一个标签处理器类:

然后在这个处理器类中写我们的if逻辑:

如何实现自定义标签开发中的if标签案例编写?

package org.zyg.web.exampleTag;import java.io.IOException;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.SimpleTagSupport;public class IFTag extends SimpleTagSupport { private boolean test; public void setTest(boolean test) { this.test = test; } @Override public void doTag() throws JspException, IOException { if(test){ this.getJspBody().invoke(null); } }}

是不是很简单,只要判断test的真假值,就确定标签体是否显示。

下面在z.tld配置文件中注册这个标签:

<tag> <name>if</name><!-- 标签名 --> <tag-class>org.zyg.web.exampleTag.IFTag</tag-class> <body-content>scriptless</body-content><!-- 有无标签体(单标签还是成对标签) --> <attribute> <name>test</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute></tag>

然后重启Web项目,测试:

很明显我们的用户没有登录,所以没有用户信息,当然是没有登录。

我们接下来模拟一下用户登录:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@taglib uri="/example" prefix="z" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>Hello</title> </head> <body> <% session.setAttribute("user","zyg"); %> <z:if test="${user!=null}"> 欢迎您!(*^__^*) </z:if> <z:if test="${user==null}"> 您没有登录!~~(>_<)~~ </z:if> </body> </html>

这样再来访问,用户是登录的,所以显示:

以上就是if标签的开发过程。

本文共计646个文字,预计阅读时间需要3分钟。

如何实现自定义标签开发中的if标签案例编写?

我们开发了一种防骗链标签,接下来开发了一个我们在其他框架中常见的标签——if标签。通过自主研发if标签,我们理解了Sun公司的C:if标签。我们自主研发的if标签效果如下:%@“

前面我们开发了防盗链标签,接下来开发一个我们在其他框架中经常见到的标签-----if标签。 我们通过自己开发if标签,来理解sun公司的<c:if>标签。 我们自己开发的if标签的效果如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@taglib uri="/example" prefix="z" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>Hello</title> </head> <body> <z:if test="${user!=null}"> 欢迎您!(*^__^*) </z:if> <z:if test="${user==null}"> 您没有登录!~~(>_<)~~ </z:if> </body> </html>

首先我们创建一个标签处理器类:

然后在这个处理器类中写我们的if逻辑:

如何实现自定义标签开发中的if标签案例编写?

package org.zyg.web.exampleTag;import java.io.IOException;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.SimpleTagSupport;public class IFTag extends SimpleTagSupport { private boolean test; public void setTest(boolean test) { this.test = test; } @Override public void doTag() throws JspException, IOException { if(test){ this.getJspBody().invoke(null); } }}

是不是很简单,只要判断test的真假值,就确定标签体是否显示。

下面在z.tld配置文件中注册这个标签:

<tag> <name>if</name><!-- 标签名 --> <tag-class>org.zyg.web.exampleTag.IFTag</tag-class> <body-content>scriptless</body-content><!-- 有无标签体(单标签还是成对标签) --> <attribute> <name>test</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute></tag>

然后重启Web项目,测试:

很明显我们的用户没有登录,所以没有用户信息,当然是没有登录。

我们接下来模拟一下用户登录:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@taglib uri="/example" prefix="z" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>Hello</title> </head> <body> <% session.setAttribute("user","zyg"); %> <z:if test="${user!=null}"> 欢迎您!(*^__^*) </z:if> <z:if test="${user==null}"> 您没有登录!~~(>_<)~~ </z:if> </body> </html>

这样再来访问,用户是登录的,所以显示:

以上就是if标签的开发过程。