java tld是什么 java中的tld文件是用来做什么的
老铁们,大家好,相信还有很多朋友对于java tld是什么和java中的tld文件是用来做什么的的相关问题不太懂,没关系,今天就由我来为大家分享分享java tld是什么以及java中的tld文件是用来做什么的的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
.tld是什么文件
tld是taglib description的缩写
定制标签拼图中的最后一块是TLD(标签库描述符)文件。创建的每个标签都必须在一个TLD文件中声明,而且这一文件还必须连同标签的Java处理器类一起被部署。正如在前一节中所看到的,servlet容器知道在何处放置了TLD文件,因为已经在web.xml标准servlet配置文件中声明了路径。
定制标签拼图中的最后一块是TLD(标签库描述符)文件。创建的每个标签都必须在一个TLD文件中声明,而且这一文件还必须连同标签的Java处理器类一起被部署。正如在前一节中所看到的,servlet容器知道在何处放置了TLD文件,因为已经在web.xml标准servlet配置文件中声明了路径。
如何在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文件是用来做什么的
tld是taglib description的缩写
定制标签拼图中的最后一块是TLD(标签库描述符)文件。创建的每个标签都必须在一个TLD文件中声明,而且这一文件还必须连同标签的Java处理器类一起被部署。正如在前一节中所看到的,servlet容器知道在何处放置了TLD文件,因为已经在web.xml标准servlet配置文件中声明了路径。
定制标签拼图中的最后一块是TLD(标签库描述符)文件。创建的每个标签都必须在一个TLD文件中声明,而且这一文件还必须连同标签的Java处理器类一起被部署。正如在前一节中所看到的,servlet容器知道在何处放置了TLD文件,因为已经在web.xml标准servlet配置文件中声明了路径。
好了,文章到这里就结束啦,如果本次分享的java tld是什么和java中的tld文件是用来做什么的问题对您有所帮助,还望关注下本站哦!