一、jstl和el表达式
1、jstl是什么?(java stardard taglib)
sun公司制订的标准标签库。标签技术:是为了
代替jsp中的java代码。sun公司将apache开发的
一套标签库并入到了
j2ee库当中,作为组成部分。
我们也可以自己定义自己的标签。
标签的优点:
1)代码的可维护性比较好。
2)代码比较好调试。
2、el是什么?
表达式语言,其作用是用于计算,其计算结果作为
标签的属性值。后来,表达式语言计算的结果也可以
直接输出到页面上。
3、el表达式语言的基本使用
1)访问bean的属性
${user.name}:
其作用是:默认情况下,依次从pageContext,
request,session,application查找名叫user的对象。
(相当于request.getAttribute(user)),如果找到,
则不再向下继续查找。接下来,会调用该对象的
getName()方法,然后输出。
可以使用pageScope,requestScope,sessionScope,
applicationScope来指定查找范围。
${requestScope.user.name}:只会从request中查找。
另外,还可以使用:
${user["name"]},其作用与${user.name}一样。
允许[]里的内容是一个变量。
如果属性是一个数组,可以使用:
${user.interest[0]}
2)计算表达式的值,值可以直接输出,也可以
作为jstl标签的属性值。
A.算术运算:要注意 "+",不能够连接字符串。
B.关系运算:可以使用 eq 代替 ==。
C.逻辑运算:可以使用 and 代替 &;&;。
D.empty运算:
判断是否为空,以下几种情况为true:
a1: 空字符串 String str = "";
a2: List中无数据 List list = new ArrayList();
a3: 数据为null。
3)读取请求参数值。
param.name: 相当于request.getParameter(name);
paramValues.interest:
相当于request.getParameterValues(interest);
4)el函数
request.setAttribute("str","abc");
request.setAttribute("list",list);
${list.size} error!
${fn:length(list)}
el函数会对el表达式的结果进行计算并输出。
A.标签库自带的el函数。
B.自定义el函数
step1 写一个java类,定义一个public static方法
,每一个方法对应于一个el函数。
step2 在.tld文件当中,去描述该函数
(参考fn.tld)。
step3 使用<%@taglib%>引入自定义的函数。
4 jstl的基本使用
1)使用步骤:
step1 将 jstl.jar standard.jar WEB-INF\lib
step2 在jsp文件当中,使用
<%@taglib prefix="c" uri=""%>导入要使用的
具体标签库。
prefix:命名空间的前缀,原则上讲,可以任意,
但是,最好遵守命名习惯。
uri:命名空间,参照.tld文件的描述来写。
.tld文件的作用是描述标签的相关信息(比如
命名空间,版本,对应的标签类等等)
step3 使用标签
xml:namespace prefix = c />
2)核心标签库
A.在url地址后面添加sessionId
B.生成绝对地址
A.重定向,在url地址后面添加sessionId
B.生成绝对地址
练习:
1、自定义一个函数:
${fn2:toUpperCase(str)}
2、使用jstl + el表达式实现
employee的增删改查。