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, 抄头    /     抄尾
                                                    例:.    
抄头
    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">
    A tag library exercising SimpleTag handlers.
    1.0
    SimpleTagLibrary
    绑定到URI中                    //如: http://www.itcast.cn

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

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



你可能感兴趣的:(JAVA)