标签按例2

<?xml version="1.0" encoding="UTF-8" ?>

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
    version="2.0">
    
    <description>A tag library exercising SimpleTag handlers.</description>
    <tlib-version>1.0</tlib-version>
    <short-name>SimpleTagLibrary</short-name>
    <uri>http://www.lcp.com</uri>
    
    
    <tag>
        <name>viewIP</name>  <!-- 为标签处理器类配一个标签名 -->
        <tag-class>cn.lcp.web.tag.ViewIPTag</tag-class>
        <body-content>empty</body-content>
    </tag>
    
    
    <tag>
        <name>tagDemo</name>  <!-- 为标签处理器类配一个标签名 -->
        <tag-class>cn.lcp.web.tag.TagDemo</tag-class>
        <body-content>JSP</body-content>  <!-- 标签体的内容 -->
    </tag>
    
    <tag>
        <name>tagDemo2</name>  <!-- 为标签处理器类配一个标签名 -->
        <tag-class>cn.lcp.web.tag.TagDemo2</tag-class>
        <body-content>empty</body-content>  <!-- 标签体的内容 -->
    </tag>
     <tag>
        <name>tagDemo3</name>  <!-- 为标签处理器类配一个标签名 -->
        <tag-class>cn.lcp.web.tag.TagDemo3</tag-class>
        <body-content>JSP</body-content>  <!-- 标签体的内容 -->
    </tag>
    <tag>
        <name>tagDemo4</name>  <!-- 为标签处理器类配一个标签名 -->
        <tag-class>cn.lcp.web.tag.TagDemo4</tag-class>
        <body-content>JSP</body-content>  <!-- 标签体的内容 -->
    </tag>
    
    
</taglib>

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.lcp.com" prefix="lcp" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>使用标签控制页面内容(标签体)是否输出</title>

  </head>
  
  <body>
   <lcp:tagDemo>啊啊啊啊</lcp:tagDemo>
  </body>
</html>
package cn.lcp.web.tag;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;

public class TagDemo extends TagSupport {

    @Override
    public int doStartTag() throws JspException {
        
        return Tag.SKIP_BODY;   //有访问权限,不能看到
    }
    
}

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.lcp.com" prefix="lcp" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

    <title>My JSP '3.jsp' starting page</title>
  
  </head>
   <lcp:tagDemo2/>
  <body>
  </body>
</html>
package cn.lcp.web.tag;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;

public class TagDemo2 extends TagSupport {

    @Override
    public int doEndTag() throws JspException {
        //控制结束标签
        return Tag.EVAL_PAGE;  //EVAL_PAGE-余下的jsp就不会执行
    }
    
}

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.lcp.com" prefix="lcp" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>控制输出次数</title>

  </head>
  
  <body>
  请求
      <lcp:tagDemo3>
      CEERVCRVRxc车VVvbvb
          This is my JSP page. <br>
      </lcp:tagDemo3> 
  </body>
</html>
package cn.lcp.web.tag;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.IterationTag;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;
//控制标签体执行的次数
public class TagDemo3 extends TagSupport {
    int x = 5;
    @Override
    public int doAfterBody() throws JspException {
        x --;
        if(x > 0){
            return IterationTag.EVAL_BODY_AGAIN;
        }else{
            return IterationTag.SKIP_BODY;
        }
    }

    @Override
    public int doStartTag() throws JspException {
        
        return Tag.EVAL_BODY_INCLUDE;  //标签体执行。
    }
    
}

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.lcp.com" prefix="lcp" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>修改标签自定义内容</title>

  </head>
  
  <body>
  <lcp:tagDemo4>
    This is my JSP page. <br>
  </lcp:tagDemo4>
  </body>
</html>
package cn.lcp.web.tag;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTag;
import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.tagext.Tag;

//修改标签体的内容
public class TagDemo4 extends BodyTagSupport {
        @Override
        public int doStartTag() throws JspException {
            return BodyTag.EVAL_BODY_BUFFERED;
        }
        
        @Override
        public int doEndTag() throws JspException {
            
            //拿到标签体
            String content = this.getBodyContent().getString();
            
            String result = content.toUpperCase();
            
            try {
                this.pageContext.getOut().write(result);
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
            
            return Tag.EVAL_PAGE;
        }
}

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.lcp.com" prefix="lcp" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>输出客户机的IP</title>
  </head>
  
  <body>
     您的IP是:<lcp:viewIP/>
  </body>
</html>
package cn.lcp.web.tag;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

public class ViewIPTag extends TagSupport {

    @Override
    public int doStartTag() throws JspException {
        // TODO Auto-generated method stub
        //服务器调用这个方法
        HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
        JspWriter out = pageContext.getOut();
        
        String ip = request.getRemoteAddr();
        try {
            out.write(ip);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return super.doStartTag();
    }
    
}

 

posted @ 2015-03-31 13:59  肉球  阅读(147)  评论(0编辑  收藏  举报