EL介绍:EL(Expression Language)表达式语言目的是代替JSP页面中的复杂代码。
EL语法:${变量名}
JSTL介绍:JSTL标准标签库(JavaServerPages Standard Tag Library),JSTL通常会与EL表达式合作实现JSP页面的编码。
JSTL开发准备工作:在JSP页面添加taglib指令:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
为什么要使用JSTL标签
1.在jsp中不建议直接书写Java代码(规范性问题)
2.EL表达式虽然可以解决“不用书写JAVA代码”问题,但是对于复杂的数据(如:数组,集合等)取值会很麻烦
3.使用JSTL标签配合EL表达式能够很好的解决取复杂类型数据的问题,简化代码书写
JSTL常用标签介绍
通用标签 set、out、remove
set标签:将值保存到指定范围里
<c:set var="username" value="杨凯飞" scope="request"></c:set>
out标签:将结果输出显示
<c:out value="${username}"></c:out>
remove标签:删除指定域内数据
<c:remove var="username" scope="request"/>
c为taglib指令中的prefix,set、out、remove为标签名,var是键值,value是值,scope是指定保存的范围(Page、Request、Session、Application)
Page范围:属性只在当前页有效,如果跳转到其他页面,则需要重新实例化,jsp页面操作资源时使用。
Request范围:属性只保存在一次服务器跳转中
Session范围:属性值保存在一次会话中,可以使用任意方式连接其他页面,则此对象值实例化一次
Application范围:属性公有,此对象在整个服务器只实例化一次
条件标签 if、choose
if标签:条件标签
<c:if test="${username=='杨凯飞'}">
这个人是帅哥
</c:if>
test为判断条件
choose标签:
<c:choose>
<c:when test="${username=='杨凯飞'}">
这个人是帅哥
</c:when>
<c:when test="${username=='霍华德'}">
这个人是篮球明星
</c:when>
<c:otherwise>
这个人是个傻子!!
</c:otherwise>
</c:choose>
多个条件判断,when为判断条件,如果以上条件都不成立则执行otherwise。
迭代标签 forEach
<c:forEach items="${list}" var="Map">
${Map.aa}<br>${Map.bb}<br>
</c:forEach>
这种方法类似于for(数据类型 变量名:集合或者数据)