EL——表達(dá)式語言(Expression Language)
為了在表現(xiàn)層上減少Java代碼,JSTL標(biāo)記庫應(yīng)運而生,EL即是JSTL的基礎(chǔ)。
格式:
${所有的EL表達(dá)式在這里面}
取值:
普通JSP寫法:
session.getValue("name");
EL寫法:
${sessionScope.name}
訪問JavaBean:
<% student stu=new student(); stu.no="123"; %>
學(xué)生編號是:${stu.no}
訪問集合:
${集合[序號]}
如:${book[0]}表示集合book中的第一個元素
[ ] . 運算符:
${sessionScope.user.sex};
等價于
String str="sex";
${sessionScope.user[str]};
兩種情況[ ]和 . 不能互換:
1、名稱中含有特殊字符:
${sessionScope.user["user-sex"]}
不可用
${sessionScope.user.user-sex}
來代替
2、動態(tài)取值:
${sessionScope.user[param]},其中param是自定義變量
EL對象:
1、PageScope:page范圍
2、requestScope:request范圍
3、sessionScope:session范圍
4、applicationScope:application范圍
若無范圍限定則按照page>request>session>application順序查找
除此之外其他EL對象:
1、pageContext:此JSP的PageContext
2、param:獲取單個參數(shù)
3、paramValues:獲取捆綁數(shù)組參數(shù)
4、Header:
5、headerValues:
6、cookie:獲取cookie的值
7、initParam:獲取web.xml中的參數(shù)值
EL自動類型轉(zhuǎn)換:
${param.count+20}
相當(dāng)于
String str=request.getParameter("count");
int count=Intger.parseInt(str_count);
count=count+20;
驗證運算符empty:
${empty A}
如果A為null、不存在、空字符串、空數(shù)組均返回true,否則返回false
JSTL
首先聲明JSP文件所使用的的標(biāo)簽庫,同時引入該標(biāo)簽庫,并指定標(biāo)簽的前綴。
<% @ taglib prefix="c" uri="http://....../core" %>
prefix表示前綴,習(xí)慣上把核心標(biāo)簽庫core的前綴定義為c。
core核心標(biāo)簽庫:
表達(dá)式操作:out、set、remove、catch
流程操作:if、choose、when、otherwise
迭代操作:forEach、forTokens
URL操作:import、param、url、redirect
基本數(shù)據(jù)操作:
<c:out>:
輸出,<c:out value="變量名"></c:out>
<c:set>:
賦值,<c:set var="" value="" scope=""></c:set>
<c:remove>:
刪除,<c:remove var="" scope=""></c:remove>
流程控制操作:
<c:if>:
<c:if test="${判斷條件}" var="" scope="session">...</c:if>
可選屬性var和scope指定var所在的scope
<c:choose>:

<c:forEach>:
全部遍歷:

部分遍歷指定遍歷區(qū)間及步長:

部分遍歷并輸出元素狀態(tài):

index:在原集合中是第幾個元素
count:在遍歷子集中是第幾個元素
first:是否是遍歷子集中的第一個元素
last:是否是遍歷子集中的最后一個元素
<c:forTokens>:
字符串遍歷


<c:import>:包含另一JSP頁面到本頁
<c:url>:得到url地址
<c:redirect>:頁面的重定向
<c:param>:向目標(biāo)頁面?zhèn)鬟f參數(shù)