自定义jstl函数、自定义jstl标签
来源:互联网 发布:ultra iso ubuntu 编辑:程序博客网 时间:2024/05/16 17:41
1.首先说明:
servelet2.4以后tld文件不需要在web.xml中配置
有两种方式使用自动加载
1、打成jar包时,将tld文件放在META-INF文件夹下(参考standard,jar)
2、直接将自定义tld文件放在WEB-INF下
正文开始:
2.创建自定义jstl函数和标签,实现效果:
<!--jsp body中代码-->
这里是测试自定义函数:${myfn:spitmine('中国') }<br>
这里是自定义标签:<mytag:hellotag></mytag:hellotag>
<!--jsp body中代码-->
输出结果如下
这里是测试自定义函数:中国(这是jstl自定义函数返回的字符串)
这里是自定义标签:helloworld
3.先说创建jstl函数
第一步创建JstlFunctionDesign.java 注意spitmine方法声明为static类型
package com.test.jstl;
public class JstlFunctionDesign {
public static String spitmine(String content){
return content+"(这是jstl自定义函数返回的字符串)";
}
}
第二步创建tld文件JstlFunctionDesign.tld,位置在web-inf下
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>my jstl functions library</description>
<display-name>my jstl functions</display-name>
<tlib-version>1.0</tlib-version>
<short-name>myfn</short-name>
<uri>http://www.kbq.com/myfn</uri>
<function>
<name>spitmine</name>
<function-class>com.test.jstl.JstlFunctionDesign</function-class>
<function-signature>
java.lang.String spitmine(java.lang.String)
</function-signature>
</function>
</taglib>
4.创建自定义标签
第一步创建JstlTagDesign.java,继承javax.servlet.jsp.tagext.TagSupport或者javax.servlet.jsp.tagext.Tag
package com.test.jstl;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;
public class JstlTagDesign extends TagSupport {
private PageContext pagecontext;
@Override
public int doEndTag() throws JspException {
// TODO Auto-generated method stub
System.out.println("doEndTag");
return SKIP_BODY;
}
@Override
public int doStartTag() throws JspException {
System.out.println("doStartTag");
try {
pagecontext.getOut().println("helloworld");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
@Override
public Tag getParent() {
// TODO Auto-generated method stub
System.out.println("getParent");
return null;
}
@Override
public void release() {
System.out.println("release");
// TODO Auto-generated method stub
}
@Override
public void setPageContext(PageContext arg0) {
System.out.println("设置PageContext对象!");
this.pagecontext = arg0;
}
@Override
public void setParent(Tag arg0) {
System.out.println("setParent");
// TODO Auto-generated method stub
}
}
第二部创建tld,JstlTagDesign.tld
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>my jstl functions library</description>
<display-name>my jstl functions</display-name>
<tlib-version>1.0</tlib-version>
<short-name>mytag</short-name>
<uri>http://www.kbq.com/mytag</uri>
<tag>
<name>hellotag</name>
<tag-class>com.test.jstl.JstlTagDesign</tag-class>
<body-content>JSP</body-content>
</tag>
</taglib>
5.测试jspJ,stlFunctionDesignTest.jsp
头部需要引入
<%@ taglib uri="http://www.kbq.com/myfn" prefix="myfn" %>
<%@ taglib uri="http://www.kbq.com/mytag" prefix="mytag" %>
.....
<body>
这里是测试自定义函数3341:${myfn:spitmine('中国') }<br>
<!-- -->
这里是自定义标签222:<mytag:hellotag></mytag:hellotag>
</body>
6.web.xml也可以对tld引用路径进行设置,也可以不设置
<jsp-config>
<taglib>
<taglib-uri>http://www.kbq.com/myfn2</taglib-uri>
<taglib-location>/WEB-INF/JstlFunctionDesign.tld</taglib-location>
</taglib>
<!-- <taglib>
<taglib-uri>http://www.kbq.com/mytag</taglib-uri>
<taglib-location>/WEB-INF/JstlTagDesign.tld</taglib-location>
</taglib>
-->
</jsp-config>
- JSTL自定义函数标签
- 自定义JSTL函数标签
- 自定义jstl函数、自定义jstl标签
- JSTL 自定义Function函数标签
- JSTL 自定义Function函数标签
- jstl自定义函数标签---备忘录
- JSTL自定义function函数标签
- 自定义标签&JSTL标签库&EL函数
- JSTL自定义标签问题
- 自定义jstl标签库
- JSTL - 自定义标签
- JSTL自定义标签
- jstl自定义标签
- JSTL自定义标签
- JSTL自定义标签
- JSTL自定义标签
- 自定义JSTL标签
- JSTL自定义标签
- HDU 5101 二分水题
- R语言多元统计包简介:各种假设检验 统计方法 聚类分析 数据处理
- Gradle学习之Eclipse构建Gradle工程
- 【性能测试】关于Loadrunner12的测试总结
- Android 实战美女拼图游戏 你能坚持到第几关
- 自定义jstl函数、自定义jstl标签
- 决策树算法学习
- 2014-11-18
- 在Office 2013(64bit)下破解VBA工程密码
- svm中的数学和算法
- HDU 5073 Galaxy
- 【测试人生】致所有测试人员的信
- 关联挖掘算法Apriori和FP-Tree学习
- 黑马程序员————java基础---------集合之Map及Collections集合类