java.tld的简单介绍

博主:adminadmin 2022-12-13 17:45:05 61

今天给各位分享java.tld的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何在JavaWeb程序中使用tld文件

 tld定义格式

?xml version="1.0" encoding="ISO-8859-1" ?  

!DOCTYPE taglib  

PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"  

""  

  

taglib  

!--定义标签版本库--  

tlib-version1.0/tlib-version  

!--定义jsp版本库--  

jsp-version1.2/jsp-version  

short-nameCms Tag/short-name  

description!--标签描述---  

A simple appbase tag library  

/description  

tag  

  

namepage/name!--tag的名字--  

tag-classcom.cms.common.tag.PageTag/tag-class!--tag对应的java类的名字--  

body-contentempty/body-content  

  

!--关于body-content 有三个值可选;empty:标签体必须为空;jsp:标签由其他jsp元素组成比如标签中含有%=attributeName%的jsp元素,那么此时body-content的值就是实际attributeName传入的值;tagdependent:有标签解释不带jsp转换(这个深入的含义不太了解)如果想深入交流技术可以加群前面435中间416最后141组合到一起就可以找到了--  

  

attribute!---这里表示的是这个tag的一个参数--  

namecmsform/name!--这个参数的名字--  

requiredtrue/required!--是否是必填选项--  

rtexprvaluetrue/rtexprvalue!--这个参数的值是否可以写入,换句话说 就是这个参数是否可以动态赋值--  

/attribute  

  

/tag  

  

/taglib

2、定义Tag对应类

此类必须重写doStartTag以及doEndTag方法

/** 

 *  

 */  

package com.cms.common.tag;  

  

import javax.servlet.jsp.JspException;  

import javax.servlet.jsp.JspWriter;  

import javax.servlet.jsp.tagext.TagSupport;  

  

/** 

 * @author louisliao 

 * 

 */  

public class DemoViewTag extends TagSupport {  

    /** 

     *  

     */  

    private static final long serialVersionUID = 1L;  

    private String cmsform = "";      

    public String getCmsForm() {  

        return cmsform ;  

    }  

    public void setCmsForm(String cmsform ) {  

        this.cmsform = cmsform ;  

    }  

        /** 

     *  

     */  

    public DemoViewTag() {  

        // TODO Auto-generated constructor stub  

    }  

    public int doStartTag()  

    {  

        return super.SKIP_BODY;  

    }  

    public int doEndTag() throws JspException  

    {  

        JspWriter writer=pageContext.getOut();  

        try {  

            writer.print("这是我的标签示例br/"+"cmsform :"+this.cmsform);  

        } catch (Exception e) {  

            // TODO: handle exception  

            e.printStackTrace();  

        }  

        return super.EVAL_PAGE;  

    }  

}

3、在web.xml中加入taglib对应文件配置 如:

taglib  

taglib-uri;/taglib-uri  

taglib-location/WEB-INF/mytag.tld/taglib-location  

/taglib

示例:

定义myTag.tld标签文件

?xml version="1.0" encoding="utf-8"?  

!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"  

      ""  

taglib  

    tlibversion1.0/tlibversion  

    jspversion1.1/jspversion  

    shortnameMyJSPTag Library/shortname  

    uri;/uri  

    info我的示例标签库/info  

      

    tag  

        namedemo.Viewport/name  

        tagclasscom.myapp.web.tag.DemoViewTag/tagclass  

        bodycontentJSP/bodycontent  

        infodemo.Viewport标签/info  

        attribute  

            namenorthTitle/name  

            requiredtrue/required  

            rtexprvaluetrue/rtexprvalue  

        /attribute  

        attribute  

            namewestTitle/name  

            requiredtrue/required  

            rtexprvaluetrue/rtexprvalue  

        /attribute    

    /tag  

/taglib

定义标签类

/** 

 *  

 */  

package com.myapp.web.tag;  

  

import javax.servlet.jsp.JspException;  

import javax.servlet.jsp.JspWriter;  

import javax.servlet.jsp.tagext.TagSupport;  

  

/** 

 * @author louisliao 

 * 

 */  

public class DemoViewTag extends TagSupport {  

    /** 

     *  

     */  

    private static final long serialVersionUID = 1L;  

    private String northTitle = "";  

    private String westTitle = "";  

      

    public String getNorthTitle() {  

        return northTitle;  

    }  

    public void setNorthTitle(String northTitle) {  

        this.northTitle = northTitle;  

    }  

    public String getWestTitle() {  

        return westTitle;  

    }  

    public void setWestTitle(String westTitle) {  

        this.westTitle = westTitle;  

    }  

    /** 

     *  

     */  

    public DemoViewTag() {  

        // TODO Auto-generated constructor stub  

    }  

    public int doStartTag()  

    {  

        return super.SKIP_BODY;  

    }  

    public int doEndTag() throws JspException  

    {  

        JspWriter writer=pageContext.getOut();  

        try {  

            writer.print("这是我的标签示例br/westTitle:"+this.westTitle+"br/northTitle:"+this.northTitle);  

        } catch (Exception e) {  

            // TODO: handle exception  

            e.printStackTrace();  

        }  

        return super.EVAL_PAGE;  

    }  

}

web.xml添加配置

taglib  

taglib-uri;/taglib-uri  

taglib-location/WEB-INF/mytag.tld/taglib-location  

/taglib

测试页面

%@ page language="java" import="java.util.*" pageEncoding="utf-8"%  

%@ taglib uri="" prefix="myTag"%   

%  

String path = request.getContextPath();  

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  

%  

  

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  

html  

  head  

    base href="%=basePath%"  

      

    titleMy JSP 'tagtldDemo.jsp' starting page/title  

      

    meta http-equiv="pragma" content="no-cache"  

    meta http-equiv="cache-control" content="no-cache"  

    meta http-equiv="expires" content="0"      

    meta http-equiv="keywords" content="keyword1,keyword2,keyword3"  

    meta http-equiv="description" content="This is my page"  

    !-- 

    link rel="stylesheet" type="text/css" href="styles.css" 

    --  

  

  /head  

    

  body  

    This is my JSP page. br  

    myTag:demo.Viewport northTitle="南" westTitle="西"/myTag:demo.Viewport  

  /body  

/html

java中的tld文件是用来做什么的?

tld是taglib description 的缩写

定制标签拼图中的最后一块是TLD(标签库描述符)文件。创建的每个标签都必须在一个TLD文件中声明,而且这一文件还必须连同标签的Java处理器类一起被部署。正如在前一节中所看到的,servlet容器知道在何处放置了TLD文件,因为已经在web.xml标准servlet配置文件中声明了路径。

定制标签拼图中的最后一块是TLD(标签库描述符)文件。创建的每个标签都必须在一个TLD文件中声明,而且这一文件还必须连同标签的Java处理器类一起被部署。正如在前一节中所看到的,servlet容器知道在何处放置了TLD文件,因为已经在web.xml标准servlet配置文件中声明了路径。

java 自定义标签中,xx.tld里面的uri写什么,还有jsp中的uri还有prefix写什么。下面是错误提示和我的tld

在JSP中使用标签是很平常的事情,在制作自定义标签时,通常都需要写tld文件来定义标签的各种属性,对应的java类,前缀等等。标签与tld文件紧紧相连,所以需要引入c.tld文件。

首先是在头部申明taglib, uri必须是web.xml定义的,或者是原始tld文件定义的。

%@ taglib prefix="c" uri="java.sun.com/jstl/core" %

%@ taglib prefix="ex" uri="/jstl-examples-taglib" %

然后便可以在jsp页面中通过prefix使用相应的标签

c:import varReader="reader" url="${filepath}"

ex:escapeHtml reader="${reader}"/

/c:import

Tld文件路径定义方式:

在web.xml中定义

taglib

taglib-uri/jstl-examples-taglib/taglib-uri

taglib-location/WEB-INF/lib/jstl-examples.tld/taglib-location

/taglib

如果这样定义的话,映射关系如下:

/jstl-examples-taglibßà{“/WEB-INF/lib/jstl-examples.tld”,””} // taglib_tld_location[0]就足以表示tld路径,因此taglib_tld_location[1]为空。

java.tld的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、java.tld的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-13,除非注明,否则均为首码项目网原创文章,转载请注明出处。