当前位置 : 主页 > 编程语言 > java >

【自定义标签开发】07-标签案例-开发if标签

来源:互联网 收集:自由互联 发布时间:2023-03-22
前面我们开发了防盗链标签,接下来开发一个我们在其他框架中经常见到的标签-----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>

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

【自定义标签开发】07-标签案例-开发if标签_tag

然后在这个处理器类中写我们的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项目,测试:

【自定义标签开发】07-标签案例-开发if标签_java_02

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

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

<%@ 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>

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

【自定义标签开发】07-标签案例-开发if标签_标签_03

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

上一篇:Java 项目部署最优方案
下一篇:没有了
网友评论