- el表达式${属性名 }从作用域中获取指定属性名的共享数据;可以解决【1】jsp页面Java脚本 从自己的作用域取值null时页面显示null【2】只能从自己的作用域取值;查找顺序:${属性名 }从page,request,session,appliaction,同pageContext的findAttribute()方法
-
用法1:顺序访问域对象中的属性 ${ 作用域.setAttribute("属性名",object)的属性名 } 无引号
2:${作用域范围.属性}---> 表示从指定作用域中拿共享数据 : ${requestScope.msg}
作用域对象: pageScope/requestScope/sessionScope/applicationScope (重点掌握)
用法3:
EL获取对象中的属性:session.setAttribute("属性对象",object)
${属性对象.子属性} 提供set方法
${属性对象["子属性"]} ---> 解决一些比较奇诡的属性名,person[www.icbc] -
pageContent是jsp的
-
第3种是tomcat7才出现,以上三种方式都可以获取上下文路径
-
在EL中做运算(算术/比较)
${1 + 2} ${1 > 2} ${ 1 eq 1 } -
在EL中判断空
${empty 属性} 返回 true或falsesession.setAttribute("person",new Persion() )判断person对象是否在作用域(那4个)中:${empty person}<br>; session.setAttribute("list",new ArryList<>() )${empty list} 判断的是集合中是否有元素
-
JSTL(JSP Standard Tag Library) JSP 标准标签库
-
使用JSTL的准备:
1:加入jar包: taglibs-standard-impl-1.2.5.jar; taglibs-standard-spec-1.2.5.jar(standard.jar, jstl.jar)
在Tomcat根/webapps/examples/WEB-INF/lib找到.
2:通过JSP的taglib指令,引入标签库.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>标签库 URI 前缀 使用模式
----------------------------------------------------------------------------------------------------------------------------
核心标签库 http://java.sun.com/jsp/jstl/core c <c:tagname…>
国际化标签(I18N) http://java.sun.com/jsp/jstl/fmt fmt <fmt:tagname…>
SQL标签库 http://java.sun.com/jsp/jstl/sql sql <sql:tagname…>
XML标签库 http://java.sun.com/jsp/jstl/xml x <x:tagname…>
-
-
if标签
格式1: 在<c:if> 体中不包括体的使用格式:
<c:if test=”checkCondition” var=”varName” scope=”page|request|session|application”/>
属性test: boolean类型的表达式,
属性var:这个变量用于保存test条件表达式判断所返回的true或者false值
scope : 将var 这个变量放在哪个作用域里面: 默认是:page格式2: 当<c:if> 体中包括体时,使用格式如下:
<c:if test=”checkCondition” var=”varName” scope=”page|request|session|application”>
body content //当 test 返回是true 才显示
</c:if><c:choose> <c:when test="${age<12}"> 儿童<br> </c:when> <c:when test="${ 18>age&&age>=14}"> 少年<br> </c:when> <c:otherwise> 成人 </c:otherwise> </c:choose>
forEach迭代标签
该标签用来对一个collection集合中的一系列对象进行迭代输出,并且可以指定迭代次数,
一般的使用格式如下:
<c:forEach items=”collection” var=”varName” [varstatue=”varStatusName”]
[begin=”begin”] [end=”end”] [step=”step”]>
Body content
</c:forEach>begin: 循环迭代开始下标
end: 结束迭代的下标 强调: 取值范围: [begin, end]
step: 步长,begin end 每次添加多少, 默认是1
var: 变量, 每次迭代拿到的变量值,var 这个变量默认作用域是:page?
items: 需要迭代的数据集合(java集合/数组)
varstatue:存储迭代的状态信息,可以访问到迭代自身的信息. 它是一个对象,所有有属性:
见下图:forEach迭代标签使用:
分2种迭代:
1: 无数据迭代, 类似java 普通for循环: for(int i = 0; i < 10; i++)<c:forEach var="i" begin="1" end="10" > ${i}<br> </c:forEach>
2: 有数据迭代, 类似java 增强for循环for(对象 变量 : 集合/数组)<% String[] lastNames= {"趙","錢","孫","李"}; session.setAttribute("lastNames", lastNames); %> <c:forEach items="${lastNames}" var="lastName" begin="1" > ${lastName} </c:forEach>
javaweb-el-jstl
最新推荐文章于 2019-07-04 23:51:00 发布