使用简单标签进行开发

简单标签执行的流程图

 

 

控制标签体的执行

 

1.标签处理器类

package com.jstl.simple.tag;
 
import java.io.IOException;
 
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;
 
public classViewBodyContent extends SimpleTagSupport {
 
    /*
     * 控制标签体的执行,通过调用nvoke()方法来进行控制
     * 、
     * getJspContext().getOut()获取输出流到浏览器
     * */
   
    @Override
    public void doTag() throws JspException,IOException {
       
        JspFragmentjf = this.getJspBody();
       
        //jf.invoke(this.getJspContext().getOut());输出标签体的内容
        //jf.invoke(null)不输出标签体的内容
        jf.invoke(this.getJspContext().getOut());
    }
}


2.tld文件中配置

<?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/j2eehttp://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.jstl.simpletag</uri>
 
  <!-- 通过简单标签来开发 -->
      
   <tag>
     <description>控制标签体是否执行</description>
     <name>viewBodyContent</name>
     <tag-class>com.jstl.simple.tag.ViewBodyContent</tag-class>
     <body-content>scriptless</body-content>
   </tag>
</taglib>


 

循环执行标签体

 

1.标签处理器类

 

package com.jstl.simple.tag;
 
import java.io.IOException;
 
import javax.servlet.jsp.JspException;
importjavax.servlet.jsp.tagext.JspFragment;
importjavax.servlet.jsp.tagext.SimpleTagSupport;
 
public class LoopBodyContent extendsSimpleTagSupport {
 
         /*
          * 控制标签体的执行,通过调用nvoke()方法来进行控制
          * 、
          * getJspContext().getOut()获取输出流到浏览器
          * */
        
         @Override
         publicvoid doTag() throws JspException, IOException {
                 
                  JspFragmentjf = this.getJspBody();
                 
             for(int i=0;i<5;i++){
                  //jf.invoke(this.getJspContext().getOut());输出标签体的内容
                  //jf.invoke(null)不输出标签体的内容
                    jf.invoke(this.getJspContext().getOut());
             }
         }
}
 


 控制整个jsp页面的执行

 

package com.jstl.simple.tag;
 
import java.io.IOException;
 
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.SkipPageException;
importjavax.servlet.jsp.tagext.JspFragment;
importjavax.servlet.jsp.tagext.SimpleTagSupport;
 
public class JspContetnView extendsSimpleTagSupport {
 
         /*
          * 控制标签体的执行,通过调用nvoke()方法来进行控制
          * 、
          * getJspContext().getOut()获取输出流到浏览器
          * */
        
         @Override
         publicvoid doTag() throws JspException, IOException {
                 
                  JspFragmentjf = this.getJspBody();
                 
             //抛出异常给jsp页面,当翻译为servlet时出现异常就不会继续执行
                 
                  thrownew SkipPageException();
         }
}

tld的配置文件

<?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.jstl.simpletag</uri>
 
   <!-- 通过简单标签来开发 --> 
       
    <tag>
      <description>控制标签体是否执行</description>
      <name>viewBodyContent</name>
      <tag-class>com.jstl.simple.tag.ViewBodyContent</tag-class>
      <body-content>scriptless</body-content>
    </tag>
   
    <tag>
      <description>重复执行</description>
      <name>loopBodyContent</name>
      <tag-class>com.jstl.simple.tag.LoopBodyContent</tag-class>
      <body-content>scriptless</body-content>
    </tag>
    
     <tag>
      <description>控制jsp页面的执行</description>
      <name>jspContetnView</name>
      <tag-class>com.jstl.simple.tag.JspContetnView</tag-class>
      <body-content>scriptless</body-content>
    </tag>
   
</taglib>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值