国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

java學(xué)習(xí)筆記—EL表達(dá)式(38)

2019-11-14 23:50:54
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
java學(xué)習(xí)筆記—EL表達(dá)式(38)EL表達(dá)式

EL即ExPRession Language,主要的任務(wù)是幫助開(kāi)發(fā)者簡(jiǎn)化獲取域?qū)傩浴?/p>

但是一般情況下需要使用EL和JSTL結(jié)合使用。

語(yǔ)法:

${

// 隱含對(duì)象|直接寫域中的屬性

}

?    算術(shù)運(yùn)算<!-- 算術(shù)運(yùn)算 -->      20+10 = ${ 20+10 } <br/>             20-10 = ${ 20-10 } <br/>             20*10 = ${ 20*10 } <br/>             20/10 = ${ 20/10 } <br/>             20%10 = ${ 20%10 } <br/>       
?    比較運(yùn)算  <!-- 比較運(yùn)算 -->       20 > 10 = ${ 20 > 10 } <br/>            20 < 10 = ${ 20 < 10 } <br/>            20 >= 10 = ${ 20 >= 10 } <br/>            10 == 10 = ${ 10 == 10 } <br/>      ${ str == null }
?    三目運(yùn)算符${ name != null ? "歡迎":"注冊(cè)"}
?    邏輯運(yùn)算${ 12>10 && 1<2 }<br/>  

一 獲取域?qū)ο?重點(diǎn))

1. 普通數(shù)據(jù)

<!-- 獲取普通屬性 -->       <%         request.setAttribute("name","jack");      %>      ${name}<br/>

以上的代碼在獲取域?qū)傩缘臅r(shí)候沒(méi)有指定給任何的域空間,那么底層一定按照小到大的方式逐一的檢測(cè)的域?qū)傩浴?/p>

pageContext.findAttribute(“”); à 實(shí)現(xiàn)原理

2 獲取數(shù)組屬性

<!-- 獲取數(shù)組屬性 -->      <%         int [] ins = {1,2,3,4};        request.setAttribute("arrs",ins);      %>      ${arrs}<br/>      ${arrs[2]}<br/>      ${arrs["2"]}<br/>  ? 該方式不是給數(shù)組用,是個(gè)集合使用。

3 List集合

   <!-- 獲取數(shù)組屬性 -->      <%         List<String> list = new ArrayList<String>();        list.add(0,"jiao");        list.add(1,"ning");        list.add(2,"bo");        request.setAttribute("list",list);      %>      ${list }<br/>      ${list[0] }<br/>      ${list["0"] }<br/>

4 獲取Map屬性

<%         LinkedHashMap<String,String> map =  new LinkedHashMap<String,String>();        map.put("001","ooooo");        map.put("002","fffff");        map.put("003","uuuuu");        request.setAttribute("map",map);      %>      ${map }<br/>      ${map[001] }<br/>      ${map["001"] }<br/>      <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>      <c:forEach items="${map}" var="entry">          ${entry.key } = ${entry.value }<br/>      </c:forEach>

6 Bean操作

<!-- 獲取Map中Bean屬性 -->      <%         LinkedHashMap<String,Cat> cats =  new LinkedHashMap<String,Cat>();        cats.put("001",new Cat("A貓",3,"波斯貓"));        cats.put("002",new Cat("B貓",3,"貍貓"));        cats.put("003",new Cat("C貓",3,"加菲貓"));               request.setAttribute("cats",cats);      %>      <c:forEach items="${cats}" var="entry">          ${entry.key}  = ${entry.value.name } , ${entry.value.age },${entry.value.type }<br/>        </c:forEach>

7 EL隱含對(duì)象

pageScope

requestScope

sessionScope

applicationScope

如果在獲取域?qū)傩缘臅r(shí)候沒(méi)有指定具體的域,那么逐一的查找比較耗時(shí),因此希望大家在明確域名的時(shí)候一定要指定域名。

pageContext 該對(duì)象可以獲取request對(duì)象

舉例:

<!-- 隱含對(duì)象 -->      ${pageContext.request.method }<br/>      ${pageContext.request.servletPath }<br/>      ${pageContext.request.contextPath }<br/>      ${pageContext.request.protocol }<br/>獲取請(qǐng)求參數(shù)paramparamValues舉例:${param.name }<br/>${paramValues.likes[0] }<br/>獲取請(qǐng)求頭信息headerheaderValues舉例:${header["accept"] }<br/>initParam獲取Cookiecookie舉例:${cookie }<br/>${cookie.address }<br/>${cookie.address.name }<br/>${cookie.address.value }<br/>
EL和函數(shù)庫(kù)

問(wèn)題:在數(shù)據(jù)顯示的時(shí)候經(jīng)常需要調(diào)用一些方法對(duì)需要顯示的數(shù)據(jù)進(jìn)行基本的處理,如:

數(shù)據(jù)過(guò)濾、求子串等操作。那么就需要使用EL表達(dá)式進(jìn)行快速的函數(shù)調(diào)用。

  1. 引入HTMLFilter.java類
  2. 描述為函數(shù)

2.1 在WEB-INF中創(chuàng)建一個(gè)myfun.tld文件

<?xml version="1.0" encoding="UTF-8"?><taglib xmlns="http://java.sun.com/xml/ns/j2ee"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"  version="2.0">  <tlib-version>1.0</tlib-version>  <short-name>jnb</short-name>  <function>    <name>filter</name>    <function-class>cn.itcast.utils.HTMLFilter</function-class>    <function-signature>java.lang.String filter(java.lang.String)</function-signature>  </function></taglib>  

2.2 引入函數(shù)庫(kù)

%@taglib uri="/WEB-INF/myfuns.tld" prefix="jnb"%

1.2 使用EL調(diào)用函數(shù)

<td>${jnb:filter(entry.value.info)}</td>

注意:

  1. EL表達(dá)式中不能繼續(xù)嵌套EL表達(dá)式
  2. 定義函數(shù)的時(shí)候函數(shù)必須是靜態(tài)的。
總結(jié)

JSTL總過(guò)有5個(gè)庫(kù),但是由于JSP主要是做數(shù)據(jù)顯示的,因此我們只學(xué)習(xí)核心庫(kù)和函數(shù)庫(kù)。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 拉孜县| 蒲江县| 全南县| 长宁区| 山丹县| 寻乌县| 剑阁县| 乃东县| 舞钢市| 合肥市| 苗栗县| 阜南县| 泸水县| 翁牛特旗| 金沙县| 贡山| 新竹市| 紫金县| 南部县| 津市市| 姚安县| 融水| 曲阜市| 马尔康县| 汝城县| 金华市| 陵川县| 新竹市| 澄江县| 称多县| 婺源县| 桓仁| 博爱县| 岑巩县| 沈阳市| 福建省| 德安县| 浮梁县| 磐安县| 襄汾县| 晋宁县|