jsp自定义标签开发


 1.     自定义标签主要用于移除Jsp页面中的java代码,EL方法也有移除JSP中java代码的功能,但不能替代,因为 EL方法并不能适用于所有java代码,如:request.getParameter("haha");

2.    要使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤:
        第.    编写一个实现Tag接口的java类,把页面java代码移到这个java类中(标签处理器类)
                实例代码:
                    
public class ViewIPTag extends TagSupport {
                            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)文件,在tld文件中把标签处理器类描述成一个标签。  文件放于WEB-INF中
                    tld文件的编写:a.    样板文件路径:\tomcat7\webapps\examples\WEB-INF\jsp2下的jsp2-example-taglib.tld
                                                b, 抄头    /     抄尾
                                                    例:.    
抄头
<taglib xmlns=" http://java.sun.com/xml/ns/j2ee"
    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> 绑定到URI中</uri>                    //如:<uri> http://www.itcast.cn</uri>

    <tag>
        <name> 定义名称</name>                                //如: <name> viewIP </name>
        <tag-class> 需配置的类及完整路径</tag-class>        //如: <tag-class> cn.itcast.web.tag.ViewIPTag </tag-class>  
        <body-content>empty</body-content>            / /是否有标签体,若传统标签标签体可用大写JSP,但SimpleTag标签标签体要用scriptless,此处标签体,jsp中标签对内内容。
    </tag>
抄尾
</taglib> 

        :自定义标签的使用
            导入 :<%@taglib uri="
绑定到URI中 "  prefix="最好是tld文件名" %>    //如: <%@taglib uri=" http://www.itcast.cn "  prefix="itcast" %> 
            使用:< 最好是tld文件名: 定义名称/ >        //如: < itcast viewIP/ >  



猜你喜欢

转载自blog.csdn.net/dhzbkj/article/details/80551415