JSP编程专题2之JSP核心三(自定义EL函数和标签)
2021-05-19 04:29
标签:自定义el函数 jstl中的el函数 自定义el标签 自定义带属性的el标签 自定义el遍历标签 1、自定义EL函数: a、自定义类,类中的方法使用static修饰符修饰: b、该类以及函数,需要在一个扩展名为.tld(tld,tag library definition,标签库定义)的XML文件中进行注册。 - 需要注意的是,XML文件是需要约束的,即需要配置文件头部。这个头部约束可以从以下文件中进行复制:在Tomcat安装目录下:tomcat-7.0\webapps\example\WEB-INF\jsp2中。 - 在项目的WEB-INF目录下新建一个XML文件(名字可以自定义),添加和修改的内容如下: c、在使用到这个EL函数的JSP文件中,需要添加taglib标签,如下所示:(添加的taglib标签和使用方式) - 在浏览器显示的页面中呈现的是大写的“ABC”。 - 需要注意的是,EL函数只能够处理四大域中的属性值以及String常量: 2、JSTL中的EL函数: a、JSTL:Apache已经定义好了一套标准的标签库规范,称之为JSTL,JSP Standard Tag Library,即JSP标准标签库,该规范已经通过JCP审核认定。 - 在JSTL中,已经定义好了一套对于字符串进行处理的函数标签库,这个函数标签库中定义了16个对于字符串进行处理的函数。我们可以在JSP页面中直接使用。 - 当然,需要使用JSTL,首先需要将其jar包导入。(jar包下载地址为:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/) b、JSTL的EL函数标签库: - JSTL函数标签库的.tld文件存放于standard的jar包的META-INF目录中,文件名为fn.tld。 c、JSTL的函数标签库中定义的16个EL函数如下表所示: 3、自定义EL标签: a、自定义类,该类继承SimpleTagSupport类,重写doTag方法: - javax.servlet.jsp.tagext.SimpleTagSupport类:实现自SimpleTag接口的用于定义标签处理器的基类。 - 该类的doTag()方法默认不对标签不做任何处理: - javax.servlet.jsp.tagext.JspFragment的invoke(Writer out)方法:执行这个Jsp片段并将数据写入给定的字符输出流中:(如果传入的参数是null,则与这个片段相关的JspContext对象的getOut方法将会配调用,并返回JspWriter类对象作为参数传入给invoke(Writer out)方法) b、在项目的WEB-INF目录下新建一个XML文件(名字可以自定义),添加和修改的内容如下: c、在使用到这个EL标签的JSP文件中,需要添加taglib标签,如下所示:(添加的taglib标签和使用方式) 4、自定义带属性的标签: a、自定义类,该类继承SimpleTagSupport类,重写doTag方法:(在自定义类中编写私有化的成员变量(并提供set方法),等同于在标签处理器中设置属性) b、在项目的WEB-INF目录下新建一个XML文件(名字可以自定义),添加和修改的内容如下: c、在使用到这个EL标签的JSP文件中,需要添加taglib标签,如下所示:(添加的taglib标签和使用方式) 5、自定义遍历List的forEachList标签: a、自定义类,该类继承SimpleTagSupport类,重写doTag方法: b、在项目的WEB-INF目录下新建一个XML文件(名字可以自定义),添加和修改的内容如下: c、在使用到这个EL标签的JSP文件中,需要添加taglib标签,如下所示:(添加的taglib标签和使用方式) 6、自定义遍历自定义遍历集合与数组(包括基本类型数组)的forEach标签: a、自定义类,该类继承SimpleTagSupport类,重写doTag方法: - java.lang.reflect.Array类:这个类提供静态方法,用以动态创建和访问java数组对象。 - java.util.Map接口中的entrySet方法:用于返回包含当前Map键值对的Set视图:(即以“键=值”的形式存储,即Map.Entry b、在项目的WEB-INF目录下新建一个XML文件(名字可以自定义),添加和修改的内容如下: c、在使用到这个EL标签的JSP文件中,需要添加taglib标签,如下所示:(添加的taglib标签和使用方式) - 附加说明:EL总结 - EL不能够出现在Java代码块、表达式块等JSP的动态代码部分。 - EL只能从pageContext、request、session和application四大域属性空间中获取数据。 - EL不能抛出空指针异常。若访问一个null对象的属性,则什么也不显示。 - EL不会抛出数组访问越界异常。若访问一个数组中的不存在的元素,则什么也不显示。 - EL不具有对字符串进行处理的能力,就连简单的字符串拼接都不行。 本文出自 “12392717” 博客,请务必保留此出处http://12402717.blog.51cto.com/12392717/1975416 JSP编程专题2之JSP核心三(自定义EL函数和标签) 标签:自定义el函数 jstl中的el函数 自定义el标签 自定义带属性的el标签 自定义el遍历标签 原文地址:http://12402717.blog.51cto.com/12392717/1975416
- 显示在index.jsp中的数据为: