JavaWeb_day08_EL JSTL

本文爲博主辛苦總結,但願本身之後返回來看的時候理解更深入,也但願能夠起到幫助初學者的做用.

轉載請註明 出自 : luogg的博客園 謝謝配合!

day08 EL JSTL

EL表達式

語法:${}html

獲取域中對象的值

<%
    request.setAttribute("name", "小花");
    session.setAttribute("name", "小傻");
    pageContext.setAttribute("name", "小鳳");//按照最小的輸出
    application.setAttribute("name", "小四");
    request.setAttribute("name.name","小花花");
%>

${name }//名字相同狀況,輸出做用範圍最小的,pageContext
${pageScope.name }
${requestScope.name }
${sessionScope.name }
${applicationScope.name}

域中數組的值

<%
    String [] arrs = {"美美","波波","東東","名名"};
    request.setAttribute("arrs", arrs);
%>
${ arrs[2] }//東東

域中集合的值

<%
    List<String> list = new ArrayList<String>();
    list.add("美美");
    list.add("小鳳");
    list.add("芙蓉");
    request.setAttribute("list", list);
%>
${ list[1] }//小鳳

域中Map集合的值

<%
    Map<String,String> map = new HashMap<String,String>();
    map.put("aa", "美美");
    map.put("bb", "小鳳");
    request.setAttribute("map", map);
%>
${ map.bb }//小鳳

域中集合有對象或者Bean的值

<%
    List<User2> uList = new ArrayList<User2>();
    uList.add(new User2("banzhang","123"));
    uList.add(new User2("美美","abc"));
    request.setAttribute("uList", uList);
%>
${ uList[1].username }

===========================
    List<EmpBean> list = empDao.showByPage(1, searchBean);
    request.setAttribute("list", list);
    ${list[0].name }

執行運算

加減乘除 ${1+2}
關係運算 gt小於 lt大於 eq等於 ne不等於 ge大於等於 le小於等於java

WEB開發中的對象

pageScope
requestScope
sessionScope
applicationScopeweb

EL其餘內置對象

param 獲取單個請求參數,form表單提交過來的參數.${param.name }
paramValues 獲取捆綁數組參數,form表單中input有多個輸入而且name同樣,${paramValues.password[1] }
header
headerValues
initParam 獲取全局初始化參數
pageContext數組

JSTL

JSTL(JSP Standard Tag Library)JSP標準標籤庫,做用:和EL表達式一塊兒 取代<% %>session

版本:

1.0 1.1和1.2(區別不大)
1.0EL表達式沒有歸入規範
1.1和1.2EL表達式歸入規範app

步驟

1.下載jar包,導入到工程中
jstl.jar , standard.jar
2.導入jar包,引入標籤庫
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>jsp

JSTL標籤

1.<c:out> 輸出內容

屬性 : value 輸出的內容(常量或變量)
default:找不到value時候輸出
escapeXml:默認是true,進行轉義,false不轉義,原樣輸出.
<c:out value="&gt${list[1] }&lt" escapeXml="true">找不到</c:out>
defalut能夠寫在標籤內部,也能夠寫在兩個標籤中間.code

2.<c:set>

1
<c:set value="花花" var="name" scope="request"></c:set>
<c:out value="${requestScope.name }"></c:out>

2
<%UserBean userBean = new UserBean(); 
request.setAttribute("userBean", userBean); %>
<c:set target="${userBean }" property="loginName" value="美美"></c:set>
<c:out value="${userBean.loginName }"></c:out>

3
<%Map<String,String> map = new HashMap<String,String>();
//map.put("第一", "小王");
//map.put("第二", "小鳳");
request.setAttribute("map", map);
%>
<c:set target="${map }" property="name" value="麗麗"></c:set>
<c:out value="${map.name }"></c:out>//麗麗

4完全在jsp中拜託java代碼
<jsp:useBean id="userBean" class="com.luogg.bean.UserBean"></jsp:useBean>
<c:set target="${userBean }" property="loginName">花花</c:set>
<c:out value="${userBean.loginName} "></c:out>
set中的各個屬性

value object 值
var String 表達value的屬性
scope String var的有效範圍
target String 設置的屬性對象,必須是JavaBean或者Map對象
property Object target對象中的屬性名orm

target給的是Bean,property就是Bean的屬性名,給的是map,他就是keyhtm

3.判斷標籤:if,choose,when,otherwise

<c:set value="27" var="age"></c:set>
    1.if的練習
    <c:if test="${age>25 }">
        <c:out value="還很年輕"></c:out>//還很年輕
    </c:if>
    2.choose的練習
<c:choose>
    <c:when test="${age>0 && age<25 }">
        <c:out value="還很年輕"></c:out>
    </c:when>
    <c:when test="${age>25 && age<40}">
        <c:out value="不怎麼年輕了"></c:out>//不怎麼年輕了
    </c:when>
    <c:otherwise>
        嗯...
    </c:otherwise>
</c:choose>

4.迭代標籤:foreach

var 參數名字
items將要迭代的集合
varStatus表示迭代的狀態,能夠訪問迭代自身的狀態
begin end step迭代步長

1.集合的迭代
<!--花花 小麗 小鳳-->
<%
    List<String> list = new ArrayList<String>();
    list.add("花花");
    list.add("小麗");
    list.add("小鳳");
    request.setAttribute("list", list);     
%>
<c:forEach items="${requestScope.list }" var="iteror">
    ${iteror }
</c:forEach>


2.迭代Bean,返回 `List<EmpBean>`
<c:forEach items="${list }" var="EmpBean">
    <td>${EmpBean.empID}</td>
    <td>${EmpBean.firstName}</td>
</c:forEach>


3.foreach能夠做爲for循環

<!--1 2 3 4 5 6 7 8 9 10-->
<c:forEach begin="1" end="10" step="1" var="i">
    ${i }
</c:forEach>


4.foreach能夠獲取迭代自身的狀態,好比獲取到這次迭代的索引,已迭代的數量,是否第一個迭代對象,是否最後一個迭代對象。

<!--0 花花 1 true false; 1 小麗 2 false false; 2 小鳳 3 false true;  -->
<%
    List<String> list = new ArrayList<String>();
    list.add("花花");
    list.add("小麗");
    list.add("小鳳");
    request.setAttribute("list", list);     
%>
<c:forEach items="${list }" var="list" varStatus="id">
    ${id.index } 迭代到哪一個
    ${list }    跌倒的元素
    ${id.count }    迭代次數
    ${id.first }    是不是第一個
    ${id.last };    是不是最後一個
相關文章
相關標籤/搜索