El表达式

在JSP2.0及以后的版本中引入了EL表达式。既可以和jsp的java代码结合使用,也可以JSTL表达式结合使用。tomcat5.5中可以直接使用EL表达式。在tomcat4中不能使用,因为jsp的版本较低。
el表达式的特点有:可以得到pageContext属性值。可以访问jsp的隐含对象如page、request、session、application。有丰富的关系运算符。逻辑运算符。算是运算符。
使用方式.与[]:如${sessionScope.user.name}和${sessionScope.user[name]}
当属性名称中含有.或是-时请使用[]的形式。当用变量表示时使用[]如${sessionScope.user[varaible]}
${expressionA[expressionB]},当expressionA为null时,整个表达式为null。
当expressionB为null时,整个表达式为null。
如果expressionA为map时,如果expressionB key不在map中,整个表达式为null。
如果expressionA为list或是array时,强制把expressionB转换为int,如果转换不成功报数组越界。
如果expressionA为一个javaBean,则expressionB会强制转换成String类型。
自动类型转换,如:${param.pageCount+1},pageCount是从另一个页面传递过来的参数,是String类型。相当于getParameter以后做Integer.parseInt再做++处理。
当expressionA需要转换成String时,如果传递过来的变量为null则转换成“”。
当expressionA需要转换成int时,当为null时或是“”时。转换成0。若是Boolean时则抛出异常。
el表达式隐含的11个对象。
pageContext,jsp上下文。pageScope,requestScope,sessionScope,applicationScope。param,paramValues,header,headerValues,cookie,initParam。
如${requestScope.userName}
${sessionScope.username}相当于session.getAttribute("username")
${param.user}和${paramValues.user}相当于request.getParamter("user")和request.getParamterValues("user").
${cookie.cookieName}
${header[heraderName]}
<context-param>
<param-name>user</param-name>
<param-value>value</param-value>
</context-param>
${initParam.user}相当于(String)application.getInitParamter("user");
pageContext可以得到与请求有关的信息以及当前页面信息
${pageContext.request.contextPath}得到web应用的名称
${pageContext.request.method}的到请求方法。
${pageContext.request.protocol}
${pageContext.request.requestURL}得到请求的url但是不包含参数
${pageContext.request.remoteUser}得到用户
${pageContext.request.remoteAddr}得到用户ip地址
算术运算符
+,-,×,/或div,%或mod。
关系运算符
==或eq,!=或ne,<或lt,>或gt,<=或le,>=或ge。
如${param.password==param.password2}
empty运算符
${empty param.user}或是${not empty param.user}
条件运算符
${A?B:C}

你可能感兴趣的:(el表达式)