EL表达式----JSP11个隐式对象----EL函数----JSTL核心标签if,foreach

一、EL表达式
语法:${EL表达式}
特点:永远没有空指针异常。如果对象是null,输出空字符串
      只适合显示数据
原理:${p}
pageContext.findAttribute("p");
实际上EL表达式是从域中搜索该对象


1、作用:替换掉JSP中的java表达式,即替换掉<%=表达式%>
它属于JSP技术
2、获取数据
a.b:调用a对象的getB()方法
根据索引获取数组和List中的指定位置上的元素。索引从0开始
根据key的值,获取Map中的value


不能够获取set中的元素,只能靠遍历。


3、执行简单的算术和逻辑运算
empty运算符:判断对象是否为null,字符串是否为"",集合中有没有元素。
   集合对象本身不是null,但其中如果没有任何元素,也是空。


EL不支持字符串连接操作
三元运算符


.和[]运算符:有些情况下通用。
.能做到的,[]都能做到。[]能做到的,.不一定能做到


[]能做到名称不符合java命名规范的取值

 比如:${user.name}或者${user['name']}单引号或双引号

4、获取web开发常用的对象
11个隐式对象
pageContext:作用和JSP中的内置对象一样。代表javax.servlet.jsp.PageCOntext对象本身

pageScope:代表PageContext中的那个域Map
requestScope:代表ServletRequest中的那个域Map
sessionScope:代表HttpSession中的那个域Map
applicationScope:代表ServletContext中的那个域Map


param:保存了所有请求参数的Map对象.key:参数名,value:参数值
paramValues:保存了所有请求参数的Map对象。key:参数名,value:参数值数组


header:保存了所有请求消息头的Map对象。key:头名称,value:头值
headerValues:保存了所有请求消息头的Map对象。key:头名称,value:头值数组


cookie:保存了所有cookie的Map对象:key:cookie对象的name,value:Cookie对象本身


initParam:保存了所有全局配置初始化参数的Map。key:参数名称,value:参数值
 web.xml   context-param标签


5、调用java静态方法


编写步骤:
1、编写一个类,定义一个静态方法
package com.itheima;


public class SomeClass {
public static String method(String value){
return value.toUpperCase();
}
}
2、在WEB-INF目录下建立一个扩展名为tld的xml文件。
(参考:C:\apache-tomcat-6.0.35\webapps\examples\WEB-INF\jsp2\jsp2-example-taglib.tld)
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
1.0
myfn
http://www.itheima.com/jsp/myfn

To uppercase
method
com.itheima.SomeClass

java.lang.String method( java.lang.String )


3、(如果把tld文件放在了WEB-INF根目录下,该步骤是可选的)
在web.xml中将tld的uri和实际的tld文件进行配对


http://www.itheima.com/jsp/myfn
/WEB-INF/myfn.tld


4、在JSP中使用
<%@ taglib uri="http://www.itheima.com/jsp/myfn" prefix="myfn"%>
${myfn:method("abcdee") }
二、JSTL:Java Standard Tag Libary
1、Core:核心标签 
c:if
作用:java中if语句
属性:
test:必须的。支持表达式(EL和Java表达式),返回值必须是boolean
test值为true,则显示标签主体内容

var:存test运算结果的变量
scope:存变量的域。page|request|session|application
默认是page


c:forEach
作用:遍历
属性:
items:要遍历的集合或数组
var:指定引用当前元素的名称
begin:开始索引
end:结束索引
step:步长
varStatus:取一个名称引用一个对象
getIndex():索引
getCount():序号
isLast():是否是最后一个
isFirst():是否是第一个




2、Fmt:格式化,国际化有关
3、XML:操作XML有关
4、SQL:操作数据库
5、function:EL函数


使用jstl,必须导入响应的jar
jstl.jar standard.jar

你可能感兴趣的:(JAVA,EE)