首页编程java编程java tld文件是什么?如何在JavaWeb程序中使用tld文件

java tld文件是什么?如何在JavaWeb程序中使用tld文件

编程之家2023-10-14173次浏览

大家好,今天给各位分享java tld文件是什么的一些知识,其中也会对如何在JavaWeb程序中使用tld文件进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

java tld文件是什么?如何在JavaWeb程序中使用tld文件

taglib prefix 是什么东西

taglib prefix是由标签指令的前缀,是定义一个标签库以及其自定义标签的前缀,前缀只能使用一次,但是一个页面中多次使用;JSP支持标签技术,要使用标签技术就先得声明标签库和标签前缀。taglib指令就是用来指明JSP页面内使用标签库技术。

taglib用于导入资源,格式为:<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>其中“prefix”属性代表前缀,属于自定义的;taglib指令的 uri属性用于指定引入标签库描述符文件的位置,prefix属性用于指定引入标签库描述符文件的前缀。

扩展资料:

java tld文件是什么?如何在JavaWeb程序中使用tld文件

<%@ taglib%>指令声明此JSP文件使用了自定义的标签,同时引用标签库,也指定了他们的标签的前缀。这里自定义的标签含有标签和元素之分。因为JSP文件能够转化为XML,所以了解标签和元素之间的联系很重要。

标签只不过是一个在意义上被抬高了点的标记,是JSP元素的一部分。JSP元素是JSP语法的一部分,和XML一样有开始标记和结束标记。元素也可以包含其它的文本,标记,元素。比如,一个jsp:plugin元素有<jsp:plugin>开始标记和</jsp:plugin>结束标记,同样也可以有<jsp:params>和<jsp:fallback>元素。

参考资料来源:

java tld文件是什么?如何在JavaWeb程序中使用tld文件

百度百科-Taglib指令

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

tld定义格式

<?xmlversion="1.0"encoding="ISO-8859-1"?>

<!DOCTYPEtaglib

PUBLIC"-//SunMicrosystems,Inc.//DTDJSPTagLibrary1.2//EN"

"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

<taglib>

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

<tlib-version>1.0</tlib-version>

<!--定义jsp版本库-->

<jsp-version>1.2</jsp-version>

<short-name>CmsTag</short-name>

<description><!--标签描述--->

Asimpleappbasetaglibrary

</description>

<tag>

<name>page</name><!--tag的名字-->

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

<body-content>empty</body-content>

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

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

<name>cmsform</name><!--这个参数的名字-->

<required>true</required><!--是否是必填选项-->

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

</attribute>

</tag>

</taglib>2、定义Tag对应类

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

/**

*

*/

packagecom.cms.common.tag;

importjavax.servlet.jsp.JspException;

importjavax.servlet.jsp.JspWriter;

importjavax.servlet.jsp.tagext.TagSupport;

/**

*@authorlouisliao

*

*/

publicclassDemoViewTagextendsTagSupport{

/**

*

*/

privatestaticfinallongserialVersionUID=1L;

privateStringcmsform="";

publicStringgetCmsForm(){

returncmsform;

}

publicvoidsetCmsForm(Stringcmsform){

this.cmsform=cmsform;

}

/**

*

*/

publicDemoViewTag(){

//TODOAuto-generatedconstructorstub

}

publicintdoStartTag()

{

returnsuper.SKIP_BODY;

}

publicintdoEndTag()throwsJspException

{

JspWriterwriter=pageContext.getOut();

try{

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

}catch(Exceptione){

//TODO:handleexception

e.printStackTrace();

}

returnsuper.EVAL_PAGE;

}

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

<taglib>

<taglib-uri>http://mytag.sf.net</taglib-uri>

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

</taglib>

示例:

定义myTag.tld标签文件

<?xmlversion="1.0"encoding="utf-8"?>

<!DOCTYPEtaglibPUBLIC"-//SunMicrosystems,Inc.//DTDJSPTagLibrary1.1//EN"

"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">

<taglib>

<tlibversion>1.0</tlibversion>

<jspversion>1.1</jspversion>

<shortname>MyJSPTagLibrary</shortname>

<uri>http://mytag.sf.net</uri>

<info>我的示例标签库</info>

<tag>

<name>demo.Viewport</name>

<tagclass>com.myapp.web.tag.DemoViewTag</tagclass>

<bodycontent>JSP</bodycontent>

<info>demo.Viewport标签</info>

<attribute>

<name>northTitle</name>

<required>true</required>

<rtexprvalue>true</rtexprvalue>

</attribute>

<attribute>

<name>westTitle</name>

<required>true</required>

<rtexprvalue>true</rtexprvalue>

</attribute>

</tag>

</taglib>

定义标签类

/**

*

*/

packagecom.myapp.web.tag;

importjavax.servlet.jsp.JspException;

importjavax.servlet.jsp.JspWriter;

importjavax.servlet.jsp.tagext.TagSupport;

/**

*@authorlouisliao

*

*/

publicclassDemoViewTagextendsTagSupport{

/**

*

*/

privatestaticfinallongserialVersionUID=1L;

privateStringnorthTitle="";

privateStringwestTitle="";

publicStringgetNorthTitle(){

returnnorthTitle;

}

publicvoidsetNorthTitle(StringnorthTitle){

this.northTitle=northTitle;

}

publicStringgetWestTitle(){

returnwestTitle;

}

publicvoidsetWestTitle(StringwestTitle){

this.westTitle=westTitle;

}

/**

*

*/

publicDemoViewTag(){

//TODOAuto-generatedconstructorstub

}

publicintdoStartTag()

{

returnsuper.SKIP_BODY;

}

publicintdoEndTag()throwsJspException

{

JspWriterwriter=pageContext.getOut();

try{

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

}catch(Exceptione){

//TODO:handleexception

e.printStackTrace();

}

returnsuper.EVAL_PAGE;

}

}web.xml添加配置

<taglib>

<taglib-uri>http://mytag.sf.net</taglib-uri>

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

</taglib>

测试页面

<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%>

<%@tagliburi="http://mytag.sf.net"prefix="myTag"%>

<%

Stringpath=request.getContextPath();

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

%>

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

<html>

<head>

<baserel="external nofollow" href="<%=basePath%>">

<title>MyJSP'tagtldDemo.jsp'startingpage</title>

<metahttp-equiv="pragma"content="no-cache">

<metahttp-equiv="cache-control"content="no-cache">

<metahttp-equiv="expires"content="0">

<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">

<metahttp-equiv="description"content="Thisismypage">

<!--

<linkrel="stylesheet"type="text/css"rel="external nofollow" href="styles.css">

-->

</head>

<body>

ThisismyJSPpage.<br>

<myTag:demo.ViewportnorthTitle="南"westTitle="西"></myTag:demo.Viewport>

</body>

</html>

关于java tld文件是什么的内容到此结束,希望对大家有所帮助。

蒋文端 蒋文端粤剧粤曲大全java war 是什么 Java为什么要打war包