java學習之路——第六十天

1.17     EL表達式 & JSTL標籤

EL表達式是一套簡單的計算規則,用於給JSP標籤的屬性賦值,也可以直接用來輸出

EL表達式中的+號只做加法操作,不做拼接操作。

EL表達式是爲了簡化我們的JSP代碼,具體一點就是爲了簡化在JSP裏面寫的那些java代碼。

       如果使用:

1.去除4個作用域中存放的值

       ${pageScope.name }

       ${requestScope.name }

       ${sessionScope.name }

       ${applicationScope.name }

 

2.如果是數組(作用域的值)

       若以pageContext存值

              pageContext.setAttribute(“array”,str);

       ${array[0] },${array[1] }

 

3.若是集合:

       pageContext.setAttribute(“list”,list);

       ${list[0] }….

 

4.若是Map集合

       pageContext.setAttribute(“map”,map);

       ${map.key1 },${map.key2 }

 

若key中有值爲key.aa

       ${map[“key.aa”] }

 

從域中取值,得先存值:

       ${pageScope.name }指定在pageScope中找name,不在其他地方找

       ${name }依次在pageContext,request,session,application中找到則不繼續找

 

若是對象:

User user = new User(“zhangsan”,18);

session.setAttribute(“u”,user);

${u.name } 和 ${u.age }取得

 

${empty u }判斷是否爲空

 

一般使用EL表達式,用的比較多的,都是從一個對象中取出它的屬性值,比如取出某個學生的姓名。

EL表達式中的11個內置對象:

       ${對象名.成員 }

pageContext           header            param            cookie

pageScope             headerValues   paramValues   initParam

requestScope

sessionScope

applicationScope

 

JSTL:JSP Standard Tab Library   jsp標準標籤庫

       簡化jsp的代碼編寫,替換<%%>的寫法,一般與EL表達式配合

我們使用的是JSTL1.1版本  而1.0版本的JSTL不支持EL表達式

 

怎麼使用:

       1.導入jar文件到工程的webContent/web-Inf/lib   jstl.jar & standard.jar

       2.在jsp頁面上,使用taglib指令,來引入標籤庫

       3.注意:如果想支持EL表達式,那麼引入的標籤庫必須選擇1.1的版本,1.0的版本不支持EL表達式

常用標籤:

       <c:set></c:if>

       <c:if test=””></c:if>

       <c:forEach></c:forEach>

 

c:set

       <c:set var=”name” value=”zhangsan” scope=”session”></c:set>

       ${session.name }

       聲明一個對象name,對象的值zhangsan,存值在session域中,默認爲page

 

c:if

       判斷test裏面的表達式是否滿足,如果滿足,就執行c:if標籤中的輸出,c:if是沒有else的

<c:set var=”age” value=”18” >

       <c:if test=”${age>26 }”>

              年齡大於26…

</c:if>

 

<c:if test=”${age<=26 }”>

       年齡小於等於26

</c:if>

</c:set>

 

定義一個變量名flag,去接收前面表達式的值,然後存在session域中

       <c:if  test=”${age>26 }”  var=”flag”  scope=”session”>

              年齡大於26

       </c:if>

 

       c:forEach

              從1開始遍歷到10,得到結果賦值給i,並且會存儲到page域中,step:增幅爲2

       <c:forEach begin=”1” end=”10” var=”i” step=”2”>

              ${i }

</c:forEach>

 

       items:表示遍歷哪一個對象,注意,這裏必須寫EL表達式

       var:遍歷出來的每一個元素用user去接收:

<c:forEach  var=”user” items=”${list }”>

       ${user.name }……${user.age }

</c:forEach>

 

choose標籤:(相當於if(){}else if(){}…)

性別:

<c:choose>

       <c:when test=’${emp.gender==”m” }’>男</c:when>

<c:when test=’${emp.gender==”f” }’>女</c:when>

      

</c:choose>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章