EL、JSTL

来源:互联网 发布:当前统计模型算法 编辑:程序博客网 时间:2024/04/28 18:39
一、EL表达式它只是JSP中的表达式,不是一种开发语言。基本语法:${EL表达式}1、获取数据EL表达式获取的对象如果是null,页面不会显示数据。因此,EL表达式中永远不会出现空指针异常p.name:调用域中名称为p对象的getName方法,点运算符是用于获取属性的取值的。.运算符:[]运算符:.运算符能做的,[]也能做。[]能做的,.不一定能做。比如${p.name}===${p['name']}==${p["name"]}[]运算符的优点:可以取不符合Java命名规范的东东。2、数学逻辑运算:empty运算符:如果判断的对象是null或者空字符串,都返回true。对于集合,即使集合对象本身不是null,没有任何元素,也返回true。EL表达式不支持字符串连接操作。3、获取JSP的内置对象(11大EL内置对象):难点,不要与JSP的内置对象和范围名称搞混11大EL隐式对象中,其中一个是表示自身对象外,其余都是表示的Map结构EL内置对象名称Java类型备注pageContextjavax.servlet.jsp.PageContext与JSP中的内置对象完全相同剩余的都是代表的Map集合pageScopejava.util.Map代表着PageContext页面范围域那个MaprequestScopejava.util.Map代表着ServletRequest请求范围域那个MapsessionScopejava.util.Map代表着HttpSession会话范围域那个MapapplicationScopejava.util.Map代表着ServletContext应用范围域那个Mapparamjava.util.Map代表着请求参数。key:请求参数的名称。value:请求参数的值,它是一个字符串。paramValuesjava.util.Map代表着请求参数。key:请求参数的名称。value:请求参数的值,它是一个字符串数组。headerjava.util.Map代表着请求消息头。key:头名称。value:头值,它是一个字符串。headerValuesjava.util.Map代表着请求消息头。key:头名称。value:头值,它是一个字符串数组。cookiejava.util.Map代表客户端提交的Cookie的Map。key:cookie的name。value:cookie对象本身initParamjava.util.Map代表着全局初始化参数(web.xml中context-param).key:参数名称。value:参数值4、调用普通类的静态方法(EL函数)编写步骤(自定义EL函数的编写步骤即自定义标签的编写步骤):a、编写一个普通的java类,提供一个静态方法public class FunctionDemo {public static String toUpperCase(String str){return str.toUpperCase();}}b、在JavaWeb应用的WEB-INF目录下建立一个扩展名是tld(taglib definition)的XML文件(参考Tomcat中的示例)。内容如下:<?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/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"version="2.0"><tlib-version>1.0</tlib-version><short-name>myfn</short-name><uri>http://www.jxn.cn/myfn</uri><function><!-- 定义函数 --><name>toUppercase</name><function-class>cn.jxn.el.FunctionDemo</function-class><function-signature>java.lang.String toUpperCase( java.lang.String )</function-signature></function></taglib>c、(可选步骤)前提是把tld文件放到了WEB-INF目录下。告知应用,tld文件和tld中的uri的对应。修改web.xml,增加以下内容:<jsp-config><taglib><taglib-uri>http://www.jxn.cn/myfn</taglib-uri><taglib-location>/WEB-INF/myfn.tld</taglib-location></taglib>  </jsp-config>d、在JSP中使用用taglib指令,引入自定义的EL函数库<%@ taglib uri="http://www.jxn.cn/myfn" prefix="myfn"%> ${myfn:toUppercase(p)} 二、JSTLJSTL中的核心标签库(替换掉JSP中的Java脚本)导入JSTL的需要的jar包:standard.jar jstl.jarc:if作用:判断是否为true,如果为true,那么标签的主体内容就会显示。属性:test:必须的。要求必须是boolean的。支持表达式(EL或Java表达式)var:保存test运算结果的变量scope: 保存的域范围。默认是pagec:forEach遍历:数组、List、Set、Map属性:items:要遍历的目标对象。支持表达式var:变量名。指向当前遍历的集合中的一个元素begin:开始的索引(含)end:结束的索引(含)step:步长。默认是1varStatus:取一个名字,引用了一个对象。该对象有以下方法:int getIndex():当前记录的索引号。从0开始int getCount():当前记录的顺序。从1开始boolean isFirst():是否是第一条记录boolean isLast():是否是最后一条记录

0 0
原创粉丝点击