自定义标签库

  • 自定义标签主要用于移除jsp页面的java代码
    我们知道软件开发里面jsp页面严禁出现一行java代码,但是有时候不可避免要在jsp写Java代码,就得用自定义标签将它移除

  • 要使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤:
    ① 编写一个实现tag接口的java类,把页面java代码移到这个java类中(标签处理器类)
    ② 编写标签库描述符(tld)文件,在tld文件中对标签处理器类 描述成一个标签

自定义标签库_第1张图片
自定义标签执行原理.jpg

快速入门:使用标签输出客户机IP
index.jsp 页面里写了java代码:

您的IP是:
<%
    String ip = request.getRemoteAddr();
    out.print(ip);
%>

现在我们就要移除这些代码。首先创建一个实现tag接口的类 ViewIPTag

package cn.itcast.web.tag;

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

public class ViewIPTag extends TagSupport {
    @Override
    public int doStartTag() throws JspException {
        HttpServletRequest request = (HttpServletRequest) this.pageContext.getRequest();
        JspWriter out = this.pageContext.getOut();

        String ip = request.getRemoteAddr();
        try {
            out.print(ip);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

        return super.doStartTag();
    }
}

其次,编写标签库描述符(tld)文件 ip.tld



    A tag library exercising SimpleTag handlers.
    1.0
    itcast
    /itcast
    
        viewIPtag
        cn.itcast.web.tag.ViewIPTag
        empty
    

友情提示:这里面的代码不用一行一行手动去敲,在Tomcat的安装目录下-webapps-examples-WEB-INF-jsp2-jsp2-example-taglib.tld,有模板,头尾复制粘贴就可以。

最后,就直接在jsp页面里直接调用:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="itcast" uri="/itcast" %>


    查看IP


您的IP是:


注意:jsp里的uri对应tld文件里的uri。

你可能感兴趣的:(自定义标签库)