import java.io.IOException;
import javax.servlet.ServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
/**
*
* @author 董乐强 2017-7-22
* 自定义标签的实现步骤
* 1)首先编写一个类实现SimpleTag,但是SimpleTag是个接口,我们需要实现里面的方法,特别麻烦。我们可以继承SimpleTagSupport
* 因为SimpleTagSupport实现了SimpleTag这个方法,所以自定义标签时,我们需编写一个类继承SimpleTagSupport即可
*
* 2)重写doTag()方法,容器会调用这个方法,主要在这个方法里面实现我们自己标签的功能
*
* 3)类定义好后,在WEB-INF目录下,建一个后缀为tld的文件,可以参考系统提供的标签tld文件的配置方法,tld文件主要是程序运行时,映射到我们
* 定义的这个类,从而实例对象,调用我们定义类的方法
*
* 4)在JSP用 @tablib uri="" perfix="" 来引入我们的标签, 然后在jsp中我们就可以调用我们的标签了
* 如:<标签名:perfix>这样调用就ok
*
* Demo:实现调用远程的Ip地址
*
*/
public class ShowRemoteIpSimpleTag extends SimpleTagSupport {
//容器在调用该方法之前,已经调用了setJspContext(JspContext pc) 传入当前页面的PageContext对象
@Override
public void doTag() throws JspException, IOException {
// TODO Auto-generated method stub
super.doTag();
PageContext pc = (PageContext)getJspContext();
ServletRequest request = pc.getRequest();
String ip = request.getRemoteAddr();
JspWriter out =pc.getOut();
out.write(ip);
}
}
自定义标签
最新推荐文章于 2023-06-25 23:32:20 发布