JSTL与EL作用都是在jsp文件中减少java代码,让jsp文件看起来不冗余。
一、EL(一般情况下,从作用域对象中取值)
使用EL表达式:${}
有些版本不支持EL表达式,在jsp开头加这一句 <%@ page isELIgnored=“false” %>即可
1、EL表达式优先作用域取值
默认情况下从最小作用域取值(作用域key值相同的情况下才适用)
2、EL表达式从指定作用域对象中取值
pageScope、requestScope、sessionScope、applicationScope
3、EL表达式解析的数据类型:
基本数据类型、对象类型、复合对象类型、Map、List
注意:复合对象类型时,要获取的子类型的名字,是填写在父类型中定义的参数名,而不是直接写子类型的类名
4、EL表达式 获取请求参数的数据
param、paramValues(这是个字符串数组地址,获取某个值可以用下标进行获取)
127.0.0.1:8080/EL/testel.jsp?name=test&fdv=football&fdv=basketball&fdv=swimming
通过下面方式获取,name值为test,fdv[2]的值为swimming
${param.name} — ${paramValues.fdv[2]}
5、EL表达式的[ ]内 做EL表达式的解析
${user.realname} — ${user[“realname”]} — ${user[param.type]}
6、EL表达式可以做 为空判断 empty
空字符串、null、空map、空list这几个值为true
二、JSTL(JSP标准标签库)
C标签※
1、c:out标签,用来将作用域对象中数据输出到页面中
2、c:set标签,
(1)用于将数据放入到作用域对象中,默认情况下,放入到最小的作用域对象中。
(2)通过scope指定作用域
(3)c:set还可在标签中间添加html代码作为标签的value属性值
3、c:remove,将指定key从作用域对象中删除,通过scope属性指定作用域
4、c:if标签 做判断
5、c:choose、c:when、c:otherwise组标签 表示多重判断
注意:1.c:otherwise不能出现在c:when之上(可以没有,有就要在最后)
2.c:otherwise和c:when之间、c:when和c:when之间不能出现其他字符
6、c:forEach遍历数据,items里填入一个可以遍历的结构
begin 开始 end 结束 step 每次增加数量(默认为1)
varStatus 状态,和下面的参数配套使用
first判断数字是否为第一个,last判断数字是否为最后一次,index 索引值(从1开始),count 循环次数
7、c:import 将一个url中的内容导入在本页面中一起显示
8、c:redirect 重定向