EL
1、EL
1)
${expression}
2)[] .
EL . [] 。
, . ? , []。
:
${user.My-Name} ${user["My-Name"] }
, [] , . 。 :
${sessionScope.user[data]} data
3)
EL , :${username}。
username 。
username, Page、Request、Session、
Application 。
username, , , ,
null。
EL
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope
4) 1--EL ${} , HTML JSP JSP JAVA .
2--EL . ${param} ${paramValues}.
${param} . ${paramValues}
.pageScope .requestScope . sessionScope
.applicationScope .
3 --<%@ page isELIgnored="true"%> EL ,TRUE .FALSE
.JSP2.0 EL .
4-- EL ${true and false} false ${5>6}
false ${5+5} 10
5--EL :page request session application (.) "[ ]"
. [ ]
2、EL
1)
EL :pageScope、requestScope、sessionScope
applicationScope;
JSP pageContext、request、session application ;
EL , , getAttribute(String name),
。
: session username , :
session.getAttribute("username") username ,
EL
${sessionScope.username}
2)
:param paramValues, EL 。
, :
request.getParameter(String name)
request.getParameterValues(String name)
EL param paramValues 。
${param.name}
${paramValues.name}
3.
1)cookie
JSTL cookie ,
: cookie userCountry , ${cookie.userCountry}
。
2)header headerValues
header
: , ${header["User-Agent"]}。
, , headerValues
。
3)initParam
initParam web (Context)
: String userid = (String)application.getInitParameter("userid");
${initParam.userid} userid
4)pageContext
pageContext 。
${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
${pageContext.session.id} session ID
${pageContext.servletContext.serverInfo}
4) >
1. :+、-、* $、/ div、% mod
2. :== eq、!= ne、< lt、> gt、<= le、>= ge
3. :&& and、|| or、! not
4. :Empty 、 、()
:${empty param.name}、${A?B:C}、${A*(B+C)}
5) EL (functions)
:ns:function( arg1, arg2, arg3 …. argN)
ns (prefix), taglib
6) :
<%@ taglib prefix="c" http://java.sun.com/jstl/core_rt">
http://java.sun.com/jstl/core_rt
" %>
FOREACH:
<c:forEach items="${messages}"
var="item"
begin="0"
end="9"
step="1"
varStatus="var">
……
</c:forEach>
OUT:
<c:out value="/${logininfo.username}"/>
c:out> value , logininfo
username 。
${……} JSP2.0 Expression Language(EL) 。 ,
( ), ( forEach
)。 :
? ${logininfo.username}
logininfo username 。 “.”
, “[]” , ${logininfo[username]}
${logininfo.username} 。
“[]” , , “.” “-”,
“[]” (
)。
JSP Script :
LoginInfo logininfo =
(LoginInfo)session.getAttribute(“logininfo”);
String username = logininfo.getUsername();
,EL 。
,EL logininfo ,
${logininfo.username} ,
logininfo, Request、Session、
Application , 。
, null.
, EL :
${pageScope.logininfo.username}
${requestScope.logininfo.username}
${sessionScope.logininfo.username}
${applicationScope.logininfo.username}
Spring , , Attribute
HttpServletRequest ( Spring
org.springframework.web.servlet.view.InternalResourceView.
exposeModelAsRequestAttributes ), Spring
MVC , requestScope。 , Spring MVC ,
:
${sessionScope.logininfo.username}
${applicationScope.logininfo.username}
? ${1+2}
, 3。
? ${i>1}
i>1 , bool true。 , EL
。
java 。
IF / CHOOSE:
<c:if test="${var.index % 2 == 0}">
*
</c:if>
EL 。
<c:if> else , , <c:choose>
tag :
<c:choose>
<c:when test="${var.index % 2 == 0}">
*
</c:when>
<c:otherwise>
!
</c:otherwise>
</c:choose>
Java switch ,<c:choose> 。
<c:when> case , 。 , “*” ,
“!”。
:1、 EL :– <%@ page isELIgnored="false" %>
、 JSTL
1、EL >;
2)var , EL true/false;
3)scope: var ;
6、
:<c:forEach items=“collection” var=“name” varStatus=“status” begin=“int“
end=”int” step=“int” >
//
</c:forEach>
:1)items: , EL ;
2)var: , items
3)varStatus:
①index: 0 ;
②count: , 1 ;
③first: true;
④last: true;
4)begin: ( );
5)end: ;
6)step: , ;
7、<c:otherwise>
:
user.wealthy true, user.wealthy is true.
<c:choose>
<c:when test="">
user.generous is true.
</c:when>
<c:when test="">
user.stingy is true.
</c:when>
<c:otherwise>
user.generous and user.stingy are false.
</c:otherwise>
</c:choose>
: user.generous true , user.generous is true.
user.stingy true , user.stingy is true.
( user.generous user.stingy true) user.generous and
user.stingy are false.
JSTL if (){…} else {…} , <c:choose>、
<c:when> <c:otherwise> 。
8、c:forTokens>
:
items
delims
begin 0
end
step 1
var
varStatus
:
<c:forTokens items="a:b:c:d" delims=":" var="token">
<c:out value=""/>
</c:forTokens>
java.util.StringTokenizer 。 a:b:c:d : ,
token 。
9、<c:redirect>
: ,
url url
context / web
:
<c:redirect /'>
http://www.yourname.com/login.jsp"/
>
http://www.yourname.com/login.jsp
, response.setRedirect
("
http://www.yourname.com/login.jsp
");
10、<c:param>
:<c:param> ,
name request
value request
:
<c:redirect url="login.jsp">
<c:param name="id" value="888"/>
</c:redirect>
888 id login.jsp , login.jsp?id=888
11、<fmt:>
: <%@ taglib prefix="fmt" http://java.sun.com/jsp/jstl/fmt">
http://java.sun.com/jsp/jstl/fmt
" %>
1) <fmt:formatDate value=“” pattern=“yyyy-MM-dd HH:mm:ss”/>
Value: EL <%new Date() %> ;
Pattern: ;
2) <fmt:formatNumber
value="${n}" pattern="###,###.##" />