您的位置:首页 > 其它

使用简单标签进行开发

2013-05-30 00:15 295 查看
简单标签执行的流程图

l 控制标签体的执行

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐