我是靠谱客的博主 丰富大船,最近开发中收集的这篇文章主要介绍【自定义标签开发】07-标签案例-开发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逻辑:
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标签的开发过程。

转载请注明出处:http://blog.csdn.net/acmman/article/details/51178736

最后

以上就是丰富大船为你收集整理的【自定义标签开发】07-标签案例-开发if标签的全部内容,希望文章能够帮你解决【自定义标签开发】07-标签案例-开发if标签所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部