Jspä¸EL表达å¼ç使ç¨
1ãä»ä¹æ¯EL
ELæ¯JSP表达å¼è¯è¨ï¼å
¨ç§°æ¯ExpressionLanguageï¼ä½¿ç¨ELçç®çæ¯ç®åå¨JSPä¸è®¿é®åéçæ¹å¼ï¼ç®åéæHTMLä¸Java代ç çè¦åã
ä¸é¢æ¥ççä¸ä¸ªä¾åï¼
[html] view plain copy
- <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
- pageEncoding="ISO-8859-1"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Insert title here</title>
- </head>
- <body>
- <%
- String a=request.getParameter("a");
- String b=request.getParameter("b");
- out.println("a+b="+(Integer.parseInt(a)+Integer.parseInt(b)));
- %>
- </body>
- </html>
ä¸é¢ç¨ELæ¥åï¼
[html] view plain copy
- <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
- pageEncoding="ISO-8859-1"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Insert title here</title>
- </head>
- <body>
- ${param.a}+${param.b}=${param.a+param.b}
- </body>
- </html>
代ç ç¸å¯¹åæ¬å°äºå¾å¤ï¼èä¸å¾æäºã
2ãJSP EL 表达å¼ç¨äºä»¥ä¸æ å½¢
éæææ¬
æ åæ ç¾åèªå®ä¹æ ç¾
å®è£ æ¯æServlet2.4/JSP2.0çContainer
3ãåºæ¬è¯æ³æ ¼å¼
${ EL Expression}
示ä¾ï¼
${ âHelloworldâ } //è¾åºå符串常é
${ str } //è¾åºå符串åéstrçå¼
${ 3 + 2 } //è¾åº3+2çç»æ
${ user.name} //è¾åºuser对象çname屿§
${user[ânameâ] } //åä¸
${ sessionScope[âuserâ].name } //åä¸
${user.name}
访é®å¯¹è±¡userçgetName()æ¹æ³ä»¥å¾å°nameæåçå¼ã
${list[1]}
访é®list对象ç第äºé¡¹ã
${map[âkeyâ]}
访é®mapæå®é®çå¼ã
忥ç个ä¾å
ELçè¯æ³å¾ç®åï¼ä»æå¤§çç¹ç¹å°±æ¯ä½¿ç¨ä¸å¾æ¹ä¾¿
ä¾ï¼
[html] view plain copy
- ${sessionScope.user.sex}
ææEL齿¯ä»¥ ${ 为起å§ã以} 为ç»å°¾çã
ä¸è¿°ELèä¾çæææ¯ï¼ä»Sessionåå¾ç¨æ·çæ§å«ãå¦æä½¿ç¨ä¹åJSP代ç çåæ³å¦ä¸ï¼
[html] view plain copy
- <span style="font-size:14px;"><% User user = (User)session.getAttribute("user");
- String sex = user.getSex( ); %></span>
两è ç¸æ¯è¾ä¹ä¸ï¼å¯ä»¥åç°ELçè¯æ³æ¯ä¼ ç»JSPä»£ç æ´ä¸ºæ¹ä¾¿ãç®æ´ã
ELæä¾ . å [ ] 两ç§è¿ç®ç¬¦æ¥ååæ°æ®ï¼[ ]å¯ä»¥è®¿é®éåæè æ¯æ°ç»çå ç´ ãBeanç屿§ãä¸åä¸¤è æä»£è¡¨çæææ¯ä¸æ ·çï¼ä½æ¯éè¦ä¿è¯è¦åå¾å¯¹è±¡çé£ä¸ªç屿§æç¸åºçsetXxx()ågetXxx()æ¹æ³æè¡ã
ä¾ï¼
[html] view plain copy
- ${sessionScope.user.sex}
çäº
[html] view plain copy
- ${sessionScope.user["sex"]}
. å [ ] ä¹å¯ä»¥åæ¶æ··å使ç¨ï¼å¦ä¸ï¼
[html] view plain copy
- ${sessionScope.shoppingCart[0].price}
è¿åç»æä¸ºshoppingCartä¸ç¬¬ä¸é¡¹ç©åçä»·æ ¼ã
4ãâ.âä¸â[ ]âçç¸åç¹åå·®å«
é½å¯ä»¥è®¿é®å¯¹è±¡æå±æ§ã
å·®å«ï¼
å½å±æ§çååå å«æç©ºæ ¼ï¼ç¹å·çå¤æç¬¦å·æ¶ã使ç¨â.âæ¥è®¿é®å¯¹è±¡æå±æ§å°ä¼åºç°å¼å¸¸
5ãæä½ç¬¦
ç®æ¯æä½ç¬¦(+,-,*,/,%)
é»è¾æä½ç¬¦(&&,||,!æand,or,not)
XMLæä½ç¬¦
lt <
le <=
gt >
ge >=
æ¯è¾æä½ç¬¦(>,>=,<,<=,==,!==)âå¯ä»¥èªå¨è½¬æ¢æ°æ®ç±»å
空æä½ç¬¦(empty)//å½å¼ä¸ºnullæ¶è¿åtrue
ELçç®æ¯è¿ç®ç¬¦åJavaä¸çè¿ç®ç¬¦ç大è´ç¸åï¼ä¼å 级ä¹ç¸åã
注æï¼'+' è¿ç®ç¬¦ä¸ä¼è¿æ¥å符串äºï¼ä»åªç¨äºå æ³è¿ç®ã
ELå ³ç³»è¿ç®ç¬¦æä»¥ä¸å 个è¿ç®ç¬¦
å
³ç³»è¿ç®ç¬¦ 说æ èä¾ ç»æ
= = æ eq | çäº |${ 5 = = 5 } æ ${ 5 eq 5 } | true
!= æ ne | ä¸çäº |${ 5 != 5 } æ ${ 5 ne 5 } | false
< æ lt | å°äº |${ 3 < 5 }æ ${ 3 lt 5 } | true
> æ gt | å¤§äº |${ 3 > 5 }æ ${ 3 gt 5 } | false
<= æ le | å°äºçäº |${ 3 <= 5 }æ ${ 3 le 5 } | true
>= æ ge | 大äºçäº |${ 3 >= 5 }æ ${ 3 ge 5 } | false
6ãéå访é®
æ°ç»è®¿é®
${} //å¦request.getAttribute(ânameâ);
List访é®
Map访é®
7ãéå¼å¯¹è±¡
JSP 表达å¼è¯è¨å®ä¹äºä¸ç»éå¼å¯¹è±¡ï¼å ¶ä¸è®¸å¤å¯¹è±¡å¨ JSP scriplet å表达å¼ä¸å¯ç¨ï¼
æ¤å¤ï¼è¿æä¾å 个éå¼å¯¹è±¡ï¼å 许对以ä¸å¯¹è±¡è¿è¡ç®æè®¿é®ï¼
æ¯è¯ | å®ä¹ |
---|---|
param |
å°è¯·æ±åæ°åç§°æ å°å°å个åç¬¦ä¸²åæ°å¼ï¼éè¿è°ç¨ ServletRequest.getParameter (String name) è·å¾ï¼ãgetParameter (String) æ¹æ³è¿å带æç¹å®åç§°çåæ°ãè¡¨è¾¾å¼ $(param.name) ç¸å½äº request.getParameter (name)ã |
paramValues |
å°è¯·æ±åæ°åç§°æ å°å°ä¸ä¸ªæ°å¼æ°ç»ï¼éè¿è°ç¨ ServletRequest.getParameter (String name) è·å¾ï¼ãå®ä¸ param éå¼å¯¹è±¡é常类似ï¼ä½å®æ£ç´¢ä¸ä¸ªå符串æ°ç»è䏿¯å个å¼ãè¡¨è¾¾å¼ ${paramvalues.name) ç¸å½äº request.getParamterValues(name)ã |
header |
å°è¯·æ±å¤´åç§°æ å°å°å个å符串头å¼ï¼éè¿è°ç¨ ServletRequest.getHeader(String name) è·å¾ï¼ãè¡¨è¾¾å¼ ${header.name} ç¸å½äº request.getHeader(name)ã |
headerValues |
å°è¯·æ±å¤´åç§°æ å°å°ä¸ä¸ªæ°å¼æ°ç»ï¼éè¿è°ç¨ ServletRequest.getHeaders(String) è·å¾ï¼ãå®ä¸å¤´éå¼å¯¹è±¡é常类似ãè¡¨è¾¾å¼ ${headerValues.name} ç¸å½äº request.getHeaderValues(name)ã |
cookie | å° cookie åç§°æ å°å°å个 cookie 对象ãåæå¡å¨ååºç客æ·ç«¯è¯·æ±å¯ä»¥è·å¾ä¸ä¸ªæå¤ä¸ª cookieãè¡¨è¾¾å¼ ${cookie.name.value} è¿å带æç¹å®åç§°ç第ä¸ä¸ª cookie å¼ãå¦æè¯·æ±å å«å¤ä¸ªååç cookieï¼ååºè¯¥ä½¿ç¨ ${headerValues.name} 表达å¼ã |
initParam | å°ä¸ä¸æåå§ååæ°åç§°æ å°å°å个å¼ï¼éè¿è°ç¨ ServletContext.getInitparameter(String name) è·å¾ï¼ã |
é¤äºä¸è¿°ä¸¤ç§ç±»åçéå¼å¯¹è±¡ä¹å¤ï¼è¿æäºå¯¹è±¡å 许访é®å¤ç§èå´çåéï¼å¦ Web ä¸ä¸æãä¼è¯ã请æ±ã页é¢ï¼
æ¯è¯ | å®ä¹ |
---|---|
pageScope |
å°é¡µé¢èå´çåéåç§°æ å°å°å ¶å¼ãä¾å¦ï¼EL 表达å¼å¯ä»¥ä½¿ç¨ ${pageScope.objectName} 访é®ä¸ä¸ª JSP ä¸é¡µé¢èå´ç对象ï¼è¿å¯ä»¥ä½¿ç¨ ${pageScope.objectName.attributeName} 访é®å¯¹è±¡ç屿§ã |
requestScope |
å°è¯·æ±èå´çåéåç§°æ å°å°å ¶å¼ã该对象å 许访é®è¯·æ±å¯¹è±¡ç屿§ãä¾å¦ï¼EL 表达å¼å¯ä»¥ä½¿ç¨ ${requestScope.objectName} 访é®ä¸ä¸ª JSP 请æ±èå´ç对象ï¼è¿å¯ä»¥ä½¿ç¨ ${requestScope.objectName.attributeName} 访é®å¯¹è±¡ç屿§ã |
sessionScope |
å°ä¼è¯èå´çåéåç§°æ å°å°å ¶å¼ã该对象å 许访é®ä¼è¯å¯¹è±¡ç屿§ãä¾å¦ï¼
|
applicationScope |
å°åºç¨ç¨åºèå´çåéåç§°æ å°å°å ¶å¼ã该éå¼å¯¹è±¡å 许访é®åºç¨ç¨åºèå´ç对象 |
ç¹å«è¯´æï¼
cookie对象
æè°çcookieæ¯ä¸ä¸ªå°å°çææ¬æä»¶ï¼å®æ¯ä»¥keyãvalueçæ¹å¼å°SessionTrackingçå 容记å½å¨è¿ä¸ªææ¬æä»¶å ï¼è¿ä¸ªææ¬æä»¶é常åå¨äºæµè§å¨çæååºå ãJSTL并没ææä¾è®¾å®cookieçå¨ä½ï¼å 为è¿ä¸ªå¨ä½éå¸¸é½ æ¯å端å¼åè å¿ é¡»å»åçäºæ ï¼è䏿¯äº¤ç»å端çå¼åè ã妿æä»¬å¨cookieä¸è®¾å®ä¸ä¸ªå称为userCountryçå¼ï¼é£ä¹å¯ä»¥ä½¿ ç¨${cookie.userCountry}æ¥åå¾å®ã
headeråheaderValuesï¼è¯·æ±æ¥å¤´å¯¹è±¡ï¼
headerå¨åç¨æ·æµè§å¨åæå¡ç«¯ç¨æ¥æ²éçæ°æ®ï¼å½ç¨æ·è¦æ±æå¡ç«¯çç½é¡µæ¶ï¼ä¼éåºä¸ä¸ªè®°è½½è¦æ±ä¿¡æ¯çæ 头æä»¶ï¼ä¾å¦ï¼ç¨æ·æµè§å¨ççæ¬ãç¨æ·è®¡ç®æºæè®¾å®çåºåçå
¶ä»ç¸å
³æ°æ®ã妿è¦åå¾ç¨æ·æµè§å¨ççæ¬ï¼å³${header["User-Agent"]}ãå¦å¤å¨å¾å°æºä¼ä¸ï¼æå¯è½å䏿 头åç§°æ¥æä¸åçå¼ï¼æ¤æ¶å¿
é¡»æ¹ä¸ºä½¿ç¨headerValuesæ¥åå¾è¿äºå¼ã
注æï¼å 为User-Agentä¸å
å«â-âè¿ä¸ªç¹æ®åç¬¦ï¼æä»¥å¿
须使ç¨â[]âï¼èä¸è½åæ${header.User-Agent}ã
initParam
å°±åå
¶ä»å±æ§ä¸æ ·ï¼æä»¬å¯ä»¥èªè¡è®¾å®webåºç¨çç¯å¢åæ°(Context)ï¼å½æä»¬æ³åå¾è¿äºåæ°æ¶ï¼å¯ä»¥ä½¿ç¨initParaméå«å¯¹è±¡å»åå¾å®ï¼ä¾å¦ï¼å½æä»¬å¨web.xmlä¸è®¾å®å¦ä¸ï¼
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 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/web-app_2_4.xsd"
version="2.4">
<context-param>
<param-name>userid</param-name>
<param-value>mike</param-value>
</context-param>
</web-app>
é£ä¹æä»¬å°±å¯ä»¥ç´æ¥ä½¿ç¨ ${initParam.userid}æ¥åå¾å称为useridï¼å
¶å¼ä¸ºmikeçåæ°ãä¸é¢æ¯ä¹åçåæ³ï¼String userid =(String)application.getInitParameter("userid");
pageContext对象
æä»¬å¯ä»¥ä½¿ç¨ ${pageContext}æ¥åå¾å
¶ä»æå
³ç¨æ·è¦æ±æé¡µé¢ç详ç»ä¿¡æ¯ãä¸é¢ååºäºå 个æ¯è¾å¸¸ç¨çé¨åã
Expression 说 æ
${pageContext.request} |åå¾è¯·æ±å¯¹è±¡
${pageContext.session} |åå¾session对象
${pageContext.request.queryString} |åå¾è¯·æ±çåæ°å符串
${pageContext.request.requestURL} |åå¾è¯·æ±çURLï¼ä½ä¸å
æ¬è¯·æ±ä¹åæ°å符串
${pageContext.request.contextPath} |æå¡çweb applicationçåç§°
${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ï¼è¡¨ç¤ºåç± server产çèclientå°æªä½¿ç¨
${pageContext.session.id} |åå¾sessionçID
${pageContext.servletContext.serverInfo}|åå¾ä¸»æºç«¯çæå¡ä¿¡æ¯
8ãç¹å«å¼ºè°
1ãæ³¨æå½è¡¨è¾¾å¼æ ¹æ®åç§°å¼ç¨è¿äºå¯¹è±¡ä¹ä¸æ¶ï¼è¿åçæ¯ç¸åºç对象è䏿¯ç¸åºç屿§ãä¾å¦ï¼å³ä½¿ç°æç pageContext 屿§å
嫿äºå
¶ä»å¼ï¼${pageContext} ä¹è¿å PageContext 对象ã
2ã æ³¨æ <%@ pageisELIgnored="true" %> 表示æ¯å¦ç¦ç¨ELè¯è¨,TRUEè¡¨ç¤ºç¦æ¢.FALSE表示ä¸ç¦æ¢.JSP2.0ä¸é»è®¤çå¯ç¨ELè¯è¨ã