1、EL表达式
概念:Expression Language 表达式语言
作用:替换和简化jsp页面中java代码的编写
语法:${表达式}
注意:jsp默认支持el表达式的。如果要忽略el表达式
-
设置jsp中page指令中:isELIgnored=“true” 忽略当前jsp页面中所有的el表达式
-
${表达式} :忽略当前这个el表达式
使用:
- 运算:
算数运算符: + - * /(div) %(mod)
比较运算符: > < >= <= == !=
逻辑运算符: &&(and) ||(or) !(not)
空运算符: empty
* 功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0
* ${empty list}:判断字符串、集合、数组对象是否为null或者长度为0
* ${not empty str}:表示判断字符串、集合、数组对象是否不为null 并且 长度>0
- 获取值
el表达式只能从域对象中获取值
${域名称.键名}:从指定域中获取指定键的值
域名称:
1. pageScope --> pageContext
2. requestScope --> request
3. sessionScope --> session
4. applicationScope --> application(ServletContext)
举例:在request域中存储了name=张三
获取:${requestScope.name}
${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。
- 隐式对象:
el表达式中有11个隐式对象
pageContext:获取jsp其他八个内置对象
${pageContext.request.contextPath}:动态获取虚拟目录
2、JSTL标签
JavaServer Pages Tag Library JSP标准标签库,是由Apache组织提供的开源的免费的jsp标签
作用:用于简化和替换jsp页面上的java代码
JSTL标签库使用步骤
- 引入对应的 taglib
- 使用其中的方法
- 在Tomcat 也需要引入 jstl的包,否则会报错:JSTL解析错误
c:if
<head>
<title>Title</title>
</head>
<body>
<h4>if测试</h4>
<hr>
<form action="coreif.jsp" method="get">
<%--
EL表达式获取表单中的数据
${param.参数名}
--%>
<input type="text" name="username" value="${param.username}">
<input type="submit" value="登录">
</form>
<%--判断如果提交的用户名是管理员,则登录成功--%>
<c:if test="${param.username=='admin'}" var="isAdmin">
<c:out value="管理员欢迎您!"/>
</c:if>
<%--自闭合标签--%>
<c:out value="${isAdmin}"/>
</body>
c:choose c:when
<body>
<%--定义一个变量score,值为85--%>
<c:set var="score" value="55"/>
<c:choose>
<c:when test="${score>=90}">
你的成绩为优秀
</c:when>
<c:when test="${score>=80}">
你的成绩为一般
</c:when>
<c:when test="${score>=70}">
你的成绩为良好
</c:when>
<c:when test="${score<=60}">
你的成绩为不及格
</c:when>
</c:choose>
</body>
c:forEach
<%
ArrayList<String> people = new ArrayList<>();
people.add(0,"张三");
people.add(1,"李四");
people.add(2,"王五");
people.add(3,"赵六");
people.add(4,"田六");
request.setAttribute("list",people);
%>
<%--
var , 每一次遍历出来的变量
items, 要遍历的对象
begin, 哪里开始
end, 到哪里
step, 步长
--%>
<c:forEach var="people" items="${list}">
<c:out value="${people}"/> <br>
</c:forEach>
<hr>
<c:forEach var="people" items="${list}" begin="1" end="3" step="1" >
<c:out value="${people}"/> <br>
</c:forEach>