天天看點

JSP中EL表達式用法詳解

EL ?ㄥ??涓?xpression Language

EL 璇?娉?寰?绠???锛?瀹???澶х???圭?瑰氨??浣跨?ㄤ?寰??逛究???ヤ??ヤ?缁?EL涓昏???璇?娉?缁???锛?

${sessionScope.user.sex}

????EL?芥??浠?{涓鴻搗濮???浠?涓虹?灏劇????涓?杩?L??渚?????????锛?浠?Session?????翠腑锛???寰?

?ㄦ?風???у???????ヤ??т???JSP Scriptlet????娉?濡?涓?锛?

User user =(User)session.getAttribute("user");

String sex =user.getSex( );

涓よ???告??杈?涔?涓?锛???浠ュ????L ??璇?娉?姣?浼?缁?JSP Scriptlet ?翠負?逛究??绠?娲???

EL琛ㄨ揪寮???????JSTL浣跨?ㄧ????浣???瑕?寮???STL??绛懼?(<c:forEach items=""></c:forEach>,<c:if test=""></c:if>绛?灞?浜?jstl琛ㄨ揪寮?)

<%@taglib uri=" jsp??绛劇???藉??绌洪??" prefix="c"%>

.涓? [ ] 杩?绠?绗?

EL ??渚? . ?? [ ] 涓ょ?杩?绠?绗??ュ?艱???版????涓???涓よ????浠h〃????????涓??風??锛?

${sessionScope.user.sex}绛?浜?${sessionScope.user["sex"]}

.??? [ ] 涔???浠ュ???舵販??浣跨???濡?涓?锛?

${sessionScope.shoppingCart[0].price}

??浼?缁???涓?hoppingCart涓?绗?涓?椤圭?╁????浠鋒?箋??

涓?杩?锛?浠ヤ?涓ょ????碉?涓よ??浼???宸?寮?锛?

(1) 褰?瑕?瀛?????灞??у??绉頒腑????涓?浜??規??瀛?绗??濡?. ?? ?? 绛?骞堕??瀛?姣????闆????绗??鳳?灏變?瀹?瑕?浣跨??[ ]锛?

渚?濡?锛?${user.My-Name }

涓?杩版??涓?姝g‘???瑰?锛?搴?褰??逛負锛?${user["My-Name"] }

(2) ??浠??ヨ????涓??????碉?

${sessionScope.user[data]}

姝ゆ?訛?data ??涓?涓?????锛?????ata???間負"sex"?訛??d?杩扮??渚?瀛?绛?浜?${sessionScope.user.sex}锛?

????ata ???間負"name"?訛?瀹?灏辯??浜?${sessionScope.user.name}??

??姝わ?濡???瑕??ㄦ?????兼?訛?灏卞??浠ョ?ㄤ?杩扮???規??ュ??锛?浣???娉????闆?ㄦ?????箋??

EL ????

EL 瀛????????版?????規?寰?绠???锛?渚?濡?锛?${username}??瀹????????????烘??涓????翠腑??绉頒負username????????

??涓烘??浠?骞舵病????瀹???涓?涓????寸??username锛???浠ュ????榛?璁ゅ?間???浠?Page ???存?撅???濡??句??幫?

??渚?搴???equest??Session??Application???淬????濡???涓??懼??sername锛?灏辯?存?ュ??浼?锛?涓???缁х畫?句??夥?

浣?????濡??ㄩ?ㄧ?????撮?芥病???懼?版?訛?灏卞??浼?null锛?褰???L琛ㄨ揪寮?杩?浼????轟???锛?椤甸????劇ず绌虹?斤???涓??????拌???ULL??

灞??ц???達?jstl??绉幫? EL涓?????绉?
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope

??浠?涔???浠ユ??瀹?瑕????哄??涓?涓????寸??????锛?

??渚? 璇存??
${pageScope.username} ????age???寸??username????
${requestScope.username} ????equest???寸??username????
${sessionScope.username} ????ession???寸??username????
${applicationScope.username} ????pplication???寸??username????

?朵腑锛?pageScope??requestScope??sessionScope??applicationScope?芥??EL ??????瀵矽薄锛?

?卞??浠?????绉闆??浠ュ?瀹規?????哄??浠???浠h〃??????锛?

渚?濡?锛?${sessionScope.username}??????ession???寸??username ??????杩?绉???娉???涓???姣?涔???JSP ????娉?锛?

String username =(String) session.getAttribute("username");瀹規????绠?娲?璁稿?.

???ㄨ漿??绫誨??

EL ?や???渚??逛究瀛?????????璇?娉?涔?澶?锛?瀹????涓?涓??逛究?????藉氨??锛????ㄨ漿??绫誨??锛???浠??ョ??涓??㈣?涓???渚?锛?

${param.count + 20}

???ョ??浣?浼???ount???間負10?訛??d?涓??㈢??缁???涓?0??涔???娌℃?ヨЕ杩?JSP ??璇昏?????戒?璁や負涓??㈢??渚?瀛???????褰??剁??锛?

浣?????SP 1.2 涔?涓?涓??借??峰??锛???????浠?绐?浣???浼??ョ???鹼?瀹?浠???绫誨??涓?寰???String锛???浠ュ?浣??ユ?朵???锛?蹇?椤誨??灏?瀹?杞?涓哄?朵?绫誨??锛?

濡?锛?int??float 绛?绛?锛??跺?????芥?ц?涓?浜??闆???绠?锛?涓??㈡??涔???????娉?锛?

String str_count =request.getParameter("count");

int count =Integer.parseInt(str_count);

count = count + 20;

??浠ワ?娉ㄦ??涓?瑕???java??璇?娉?锛?褰?瀛?绗?覆???闆???ㄢ??+???炬?ユ?朵????闆??杞???負瀛?绗?覆锛???娣鋒??姐??

EL ????瀵矽薄

JSP??9涓?????瀵矽薄锛???EL涔?????宸辯??????瀵矽薄??EL????瀵矽薄?誨?辨??11 涓?

????瀵矽薄 绫誨?? 璇存??
PageContext javax.servlet.ServletContext 琛ㄧず姝?SP??PageContext
PageScope java.util.Map ??寰?Page???寸??灞??у??绉版??瀵瑰?????
RequestScope java.util.Map ??寰?Request???寸??灞??у??绉版??瀵瑰?????
sessionScope java.util.Map ??寰?Session???寸??灞??у??绉版??瀵瑰?????
applicationScope java.util.Map ??寰?Application???寸??灞??у??绉版??瀵瑰?????
param java.util.Map 濡???ServletRequest.getParameter(String name)????浼?String绫誨??????
paramValues java.util.Map 濡???ServletRequest.getParameterValues(String name)????浼?String[]绫誨??????
header java.util.Map 濡???ServletRequest.getHeader(String name)????浼?String绫誨??????
headerValues java.util.Map 濡???ServletRequest.getHeaders(String name)????浼?String[]绫誨??????
cookie java.util.Map 濡???HttpServletRequest.getCookies()
initParam java.util.Map 濡???ServletContext.getInitParameter(String name)????浼?String绫誨??????

涓?杩???涓??矽?娉ㄦ??????濡???浣?瑕???L杈??轟?涓?甯擱????璇?锛?瀛?绗?覆瑕?????寮??鳳?涓??剁??璇?EL浼?榛?璁ゆ??浣?璁や負??甯擱??褰???涓?涓??????ュ???锛?

杩??跺???杩?涓???????涓?澹版?????翠?瀛??ㄧ??璇?浼?杈??虹┖锛?濡???瀛??ㄥ??杈??鴻?ュ???????箋??

灞???Attribute)涓?????Scope)

涓????存???崇??EL ????瀵矽薄????浠ヤ???涓?锛?pageScope??requestScope??sessionScope ??

applicationScope锛?瀹?浠??烘??涓?灏卞??JSP??pageContext??request??session??application涓??鳳???浠ョ?????ㄨ?????绋??ヨ?存????

涓?杩?蹇?椤繪敞??????锛?杩???涓?????瀵矽薄???界?ㄦ?ュ??寰????村??у?鹼???SP涓???getAttribute(String name)锛??翠??藉??寰??朵??稿?充俊??锛?

渚?濡?锛?JSP涓???request瀵矽薄?ゅ??浠ュ????灞??т?澶?锛?杩???浠ュ??寰??ㄦ?風??璇鋒????版??琛ㄥご淇℃??绛?绛???

浣?????L涓?锛?瀹?灏卞???藉??绾??ㄦ?ュ??寰?瀵瑰????寸??灞??у?鹼?

渚?濡?锛???浠?瑕???ession 涓??ㄥ??涓?涓?灞??э?瀹?????绉頒負username锛???SP 涓?浣跨??ession.getAttribute("username")?ュ??寰?username ???鹼?

?浣?????L涓?锛?????浣跨??{sessionScope.username}?ュ??寰??跺?肩????

cookie

??璋???cookie??涓?涓?灏?灏?????????浠訛?瀹???浠?ey??value???瑰?灏?Session Tracking????瀹矽?闆??ㄨ?涓???????浠跺??锛?杩?涓???????浠堕??甯稿???ㄤ?娴?瑙??ㄧ????瀛??哄????

JSTL骞舵病????渚?璁懼??cookie???ㄤ?锛???涓鴻?涓??ㄤ???甯擱?芥????绔?寮?????蹇?椤誨?誨????浜???锛???涓???浜ょ???绔???寮???????

???ユ??浠???ookie 涓?璁懼??涓?涓???绉頒負userCountry???鹼??d???浠ヤ嬌??{cookie.userCountry}?ュ??寰?瀹???

header ??headerValues

header ?ㄥ???ㄦ?鋒?瑙??ㄥ?????$???ㄦ?ユ??????版??锛?褰??ㄦ?瘋?姹????$????缃?椤墊?訛?浼????轟?涓?璁拌澆瑕?姹?淇℃??????澶存??浠訛?渚?濡?锛??ㄦ?鋒?瑙??ㄧ?????????ㄦ?瘋?$???烘??璁懼?????哄??绛??朵??稿?蟲?版???????ヨ???寰??ㄦ?鋒?瑙??ㄧ??????锛???{header["User-Agent"]}??????ㄩ?灏??轟?涓?锛??????藉??涓???澶村??绉版?ユ??涓??????鹼?姝ゆ?跺?椤繪?逛負浣跨??eaderValues ?ュ??寰?杩?浜??箋??

娉ㄦ??:??涓?ser-Agent 涓???????-??杩?涓??規??瀛?绗????浠ュ?椤諱嬌?ㄢ??[]??锛???涓??藉????

$(header.User-Agent)??

initParam

灏卞???朵?灞??т??鳳???浠???浠ヨ??琛?璁懼??web 绔??扮????澧?????Context)锛?褰???浠??沖??寰?杩?浜?????nitParam灏卞???朵?灞??т??鳳?

??浠???浠ヨ??琛?璁懼??web 绔??扮????澧?????Context)锛?褰???浠??沖??寰?杩?浜?????

<?xml version="1.0"encoding="ISO-8859-1"?>

<web-appxmlns="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/web-app_2_4.xsd"

version="2.4">锛?

<context-param>

<param-name>userid</param-name>

<param-value>mike</param-value>

</context-param>锛?

</web-app>

?d???浠?灏卞??浠ョ?存?ヤ嬌??{initParam.userid}?ュ??寰???绉頒負userid锛??跺?間負mike ?????般??

涓??㈡??涔???????娉?锛?String userid =(String)application.getInitParameter("userid");

param??paramValues

?ㄥ??寰??ㄦ?峰???版?堕??甯鎬嬌?ㄤ?涓??規?锛?

request.getParameter(String?name)

request.getParameterValues(String?name)

??EL涓?????浠ヤ嬌??aram??paramValues涓よ???ュ??寰??版????

${param.name}

${paramValues.name}

杩???param ?????藉??request.getParameter(String name)?稿??锛???paramValues??

request.getParameterValues(String name)?稿????濡????ㄦ?峰~浜?涓?涓?琛ㄦ?鹼?琛ㄦ?煎??绉頒負username锛?????浠?灏卞??浠ヤ嬌??{param.username}?ュ??寰??ㄦ?峰~?ョ???箋??

???拌???锛?澶у?跺?璇ュ???纭?EL琛ㄨ揪寮????介??杩???缃?瀵矽薄???鹼?涔?灏辨????璇繪??浣?锛?濡????寵?琛?????浣???璇?灏辮?╁???頒唬???誨????锛?姣?绔?EL琛ㄨ揪寮?浠?浠???瑙??句???杈??烘??绛劇艦浜???

pageContext

??浠???浠ヤ嬌??${pageContext}?ュ??寰??朵????崇?ㄦ?瘋?姹???椤甸?㈢??璇??淇℃????涓?琛ㄥ???轟???涓?姣?杈?甯哥?ㄧ???ㄥ??

Expression 璇存??
${pageContext.request.queryString} ??寰?璇鋒??????闆??绗?覆
${pageContext.request.requestURL} ??寰?璇鋒???URL锛?浣?涓?????璇鋒?涔????闆??绗?覆,??ervlet??HTTP?闆????
${pageContext.request.contextPath} ???$??webapplication????绉?
${pageContext.request.method} ??寰?HTTP???規?(GET??POST)
${pageContext.request.protocol} ??寰?浣跨?ㄧ????璁?(HTTP/1.1??HTTP/1.0)
${pageContext.request.remoteUser} ??寰??ㄦ?峰??绉?
${pageContext.request.remoteAddr} ??寰??ㄦ?風??IP?闆??
${pageContext.session.new} ?ゆ??session????負?扮??锛???璋??扮??session锛?琛ㄧず????erver浜х????client灏???浣跨??
${pageContext.session.id} ??寰?session??ID
${pageContext.servletContext.serverInfo} ??寰?涓繪?虹???????′俊??

?杩?涓?瀵矽薄???????版?瑰??浠g????纭?缂?????棰?锛?濡?椤甸??腑??涓?A??绛鵑?炬?ヨ?塊??涓?涓?SERVLET锛?濡?????姝諱?璇?ERVLET??HTTP?闆??

?d?濡???褰?璇?ERVLET??SERVLET-MAPPING?瑰?????跺??蹇?椤昏?淇??規?浠g??锛?杩??風淮?ゆ?т?澶ф?????c??

EL绠???杩?绠?

琛ㄨ揪寮?璇?瑷???????绠???杩?绠?绗????昏?杩?绠?绗???甯稿?锛???????ava璇?瑷?????????绠???杩?绠?绗??琛ㄨ揪寮?璇?瑷??藉??浠ヤ嬌???

????ava璇?瑷?涓???????涓?浜?绠???杩?绠?绗????昏?杩?绠?绗??琛ㄨ揪寮?璇?瑷?涔???????

Code

<%@?page?contentType="text/html;?charset=gb2312"%>

<html>

<head>

<title>琛ㄨ揪寮?璇?瑷??-?绠???杩?绠?绗?lt;/title>

</head>

<body>

<h2>琛ㄨ揪寮?璇?瑷??-?绠???杩?绠?绗?lt;/h2>

<hr>

<table??bgcolor="aaaadd">

<tr>

<td><b>琛ㄨ揪寮?璇?瑷?</b></td>

<td><b>璁$??缁???</b></td>

</tr>

<!--??存?ヨ??哄父???-->

<tr>

<td>\${1}</td>

<td>${1}</td>

</tr>

<!--?璁$????娉??-->

<tr>

<td>\${1.2?+?2.3}</td>

<td>${1.2?+?2.3}</td>

</tr>

<!--?璁$????娉??-->

<tr>

<td>\${1.2E4?+?1.4}</td>

<td>${1.2E4?+?1.4}</td>

</tr>

<!--?璁$????娉??-->

<tr>

<td>\${-4?-?2}</td>

<td>${-4?-?2}</td>

</tr>

<!--?璁$??涔?娉??-->

<tr>

<td>\${21?*?2}</td>

<td>${21?*?2}</td>

</tr>

<!--?璁$???ゆ??-->

<tr>

<td>\${3/4}</td>

<td>${3/4}</td>

</tr>

<!--?璁$???ゆ??-->

<tr>

<td>\${3?div?4}</td>

<td>${3?div?4}</td>

</tr>

<!--?璁$???ゆ??-->

<tr>

<td>\${3/0}</td>

<td>${3/0}</td>

</tr>

<!--?璁$??姹?浣??-->

<tr>

<td>\${10%4}</td>

<td>${10%4}</td>

</tr>

<!--?璁$??姹?浣??-->

<tr>

<td>\${10?mod?4}</td>

<td>${10?mod?4}</td>

</tr>

<!--?璁$??涓???杩?绠?绗β?-->

<tr>

<td>\${(1==2)???3?:?4}</td>

<td>${(1==2)???3?:?4}</td>

</tr>

</table>

</body>

</html>

<%@?page?contentType="text/html;?charset=gb2312"%>

<html>

<head>

<title>琛ㄨ揪寮?璇?瑷??-?绠???杩?绠?绗?lt;/title>

</head>

<body>

<h2>琛ㄨ揪寮?璇?瑷??-?绠???杩?绠?绗?lt;/h2>

<hr>

<table??bgcolor="aaaadd">

<tr>

<td><b>琛ㄨ揪寮?璇?瑷?</b></td>

<td><b>璁$??缁???</b></td>

</tr>

<!--??存?ヨ??哄父???-->

<tr>

<td>\${1}</td>

<td>${1}</td>

</tr>

<!--?璁$????娉??-->

<tr>

<td>\${1.2?+?2.3}</td>

<td>${1.2?+?2.3}</td>

</tr>

<!--?璁$????娉??-->

<tr>

<td>\${1.2E4?+?1.4}</td>

<td>${1.2E4?+?1.4}</td>

</tr>

<!--?璁$????娉??-->

<tr>

<td>\${-4?-?2}</td>

<td>${-4?-?2}</td>

</tr>

<!--?璁$??涔?娉??-->

<tr>

<td>\${21?*?2}</td>

<td>${21?*?2}</td>

</tr>

<!--?璁$???ゆ??-->

<tr>

<td>\${3/4}</td>

<td>${3/4}</td>

</tr>

<!--?璁$???ゆ??-->

<tr>

<td>\${3?div?4}</td>

<td>${3?div?4}</td>

</tr>

<!--?璁$???ゆ??-->

<tr>

<td>\${3/0}</td>

<td>${3/0}</td>

</tr>

<!--?璁$??姹?浣??-->

<tr>

<td>\${10%4}</td>

<td>${10%4}</td>

</tr>

<!--?璁$??姹?浣??-->

<tr>

<td>\${10?mod?4}</td>

<td>${10?mod?4}</td>

</tr>

<!--?璁$??涓???杩?绠?绗β?-->

<tr>

<td>\${(1==2)???3?:?4}</td>

<td>${(1==2)???3?:?4}</td>

</tr>

</table>

</body>

</html>

涓??㈤〉??腑绀鴻??浜?琛ㄨ揪寮?璇?瑷?????????????????涔????ゃ??姹?浣?绛?绠???杩?绠?绗??????斤?璇昏?????戒????頒?琛ㄨ揪寮?璇?瑷?杩?????div??mod绛?杩?绠?绗???

??涓?琛ㄨ揪寮?璇?瑷????????闆?奸?藉???娴??規?闆???锛???浠?/0??瀹?璐ㄦ??3.0/0.0锛?寰??扮???搴?璇ユ??Infinity??

濡?????瑕??ㄦ????琛ㄨ揪寮?璇?瑷???椤甸??腑姝e父杈??衡??$??绗??鳳????ㄢ??$??绗??峰????杞?涔?瀛?绗???\??锛?????绯葷?浠ヤ負??$????琛ㄨ揪寮?璇?瑷????規????璁般??

EL?崇郴杩?绠?绗?

?崇郴杩?绠?绗? 璇存?? ??渚? 缁???
== ?? eq 绛?浜? ${5==5}??${5eq5} true
!= ?? ne 涓?绛?浜? ${5!=5}??${5ne5} false
< ?? lt 灏?浜? ${3<5}??${3lt5} true
> ?? gt 澶т? ${3>5}??{3gt5} false
<= ?? le 灏?浜?绛?浜? ${3<=5}??${3le5} true
>= ?? ge 澶т?绛?浜? 5}??${3ge5} false

琛ㄨ揪寮?璇?瑷?涓?浠????ㄦ?闆??涓??闆??涔??存??杈?锛?杩????ㄥ??绗??瀛?绗???存??杈?锛?瀛?绗?覆??姣?杈????規???跺?瑰?UNICODE?兼?ユ??杈?澶у?????

娉ㄦ??锛??ㄤ嬌??L ?崇郴杩?绠?绗??訛?涓??藉?????锛?

${param.password1} = =${param.password2}

????

${ ${param.password1 } = = ${param.password2 } }

??搴?????

${ param.password1 = =param.password2 }

EL?昏?杩?绠?绗?

?昏?杩?绠?绗? ??渚? 缁???
&&??and 浜ら??${A && B}??${A and B} true/false
||??or 骞堕??${A || B}??${A or B} true/false
!??not ??${! A }??${not A} true/false

Empty 杩?绠?绗?

Empty 杩?绠?绗?富瑕??ㄦ?ュ?ゆ???兼????負绌猴?NULL,绌哄??绗?覆锛?绌洪????锛???

?′歡杩?绠?绗?

${ A ? B : C}