EL与JSTL
jsp页面可以使用java代码来实现页面逻辑,但是维护比较困难。
可以使用EL来访问和处理应用程序的数据。
JSTL来替换页面显示逻辑的java代码。
尽量减少java代码的使用。
EL是jsp2.0规范中增加的,基本语法为${表达式},类似于<%=表达式%>。
通过page指令的isELIgnored属性来说明是否只是EL表达式。默认不写为False。False为可用,True为不可用。
${user.name}或${user[“name”]}相当于<%=user.getName()%>
${array[0]}获取数组/集合array中数据
EL表达式支持:
算数运算符,${a+b}
关系运算符,${a==b}//同时也可以用${a eq b}
eq,ne,lt,gt,le,ge依次代表==,!=,<,>,<=,>=
逻辑运算符,${a&& b}或${a and b},|| or,! not
条件运算符,${a ?b:c}
empty运算符,${empty a},变量a不存在返回true。
EL隐含对象有11个,可直接用。
applicationScope,应用程序范围内的scoped变量组成的集合
cookie,所有cookie组成的集合
header,HTTP请求头部,字符串
headerValues,HTTP请求头部,字符串集合
initParam,全部应用程序参数名组成的集合
pageContext,当前页面的javax.servlet.jsp.PageContext对象
pageScope,页面范围内所有对象的集合
param,所有请求参数字符串组成的集合
paramValues,所有作为字符串集合的请求参数
requestScop,e所有请求范围的对象的集合
sessionScope,所有会话范围的对象的集合
JSTL标准标签标签库由Core,I18N,XML,SQL,Functions五个不同功能的标签库组成。
配置JSTL
Tomcat的\webapps\examples\WEB-INF \lib目录下找到standard.jar和jstl.jar文件复制到Web工程的WEB-INF\lib目录下。
使用taglib标记定义前缀与uri引用
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
下面主要介绍一下Core核心标签库。
用来显示数据的内容,可直接用EL表达式
可以在page、request、session、application等范围内设置一个变量
如:
相当于:<%session.setAttribute(“a”,123)%>
设置JavaBean的属性必须使用target属性进行设置:
删除某个变量
相当于<%session.remmoveAttribute(“varName”)>
可以实现if/elseif/else的功能,如:
实现for循环
循环体
用于迭代字符串中由分隔符的各成员,由java.util.StringTokenizer实例实现。
循环体