﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-乐乐-文章分类-EL标签</title><link>http://www.blogjava.net/wangbbs2007/category/42034.html</link><description>http://www.blogjava.net/wangbbs2007/</description><language>zh-cn</language><lastBuildDate>Fri, 09 Oct 2009 19:03:50 GMT</lastBuildDate><pubDate>Fri, 09 Oct 2009 19:03:50 GMT</pubDate><ttl>60</ttl><item><title>EL(Excepress Language表达式语言) </title><link>http://www.blogjava.net/wangbbs2007/articles/297598.html</link><dc:creator>乐java乐</dc:creator><author>乐java乐</author><pubDate>Fri, 09 Oct 2009 12:25:00 GMT</pubDate><guid>http://www.blogjava.net/wangbbs2007/articles/297598.html</guid><wfw:comment>http://www.blogjava.net/wangbbs2007/comments/297598.html</wfw:comment><comments>http://www.blogjava.net/wangbbs2007/articles/297598.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangbbs2007/comments/commentRss/297598.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangbbs2007/services/trackbacks/297598.html</trackback:ping><description><![CDATA[1.....所有的EL都是以$"{"开始,以"}"结尾的.例:${sessionScope.user.sex}(sessionScope是EL的内置对象,后面会讲到).该例子的意思是:从session中取得用户的性别.相当于下面的代码 <br />
&lt;% <br />
User user=(User)session.getParameter("user"); <br />
String sex=user.getSex(); <br />
%&gt; <br />
<br />
2......EL提供"."和"[ ]"两种运算符来存取数据,[]可以访问集合或者数组的元素,Bean的属性.下列两者所代表的意思是一样的,但是需要保证要取得对象的哪个的属性有相应的setXxx()和getXxx()方法才行(即符合JavaBean规范) <br />
例: <br />
${sessionScope.user.set} &lt;=======&gt; ${session.user["sex"]}.&nbsp; "."和"[]"也可以混合使用,如下:${sessionScope.shoppingCart[0].price} 返回结果为shoppingCart中第一项物品的价格 <br />
在EL中,字符串即可以用"abc",也可以使用'abc'; <br />
<br />
3......EL运算符 <br />
EL的算术运算符和JAVA中的运算符大致相同,优先级也相同,区别在于"+"运算符不会连接字符串,只用于加法运算; <br />
EL关系运算符有以下6个 <br />
关系运算符号 &nbsp; 说明 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 举例 结果 <br />
==或eq(equal) 等于 ${5==5}或${5eq5} true <br />
!=或ne(not equal) 不等于 ${5!=5}或${5eq5} false <br />
&lt;或lt(less than) 小于 ${3!=5}或${3lt5} true <br />
&gt;或gt(great than) 大于 略 <br />
&lt;=或le 小于等于 略 <br />
&gt;=或ge 大于等于 略 <br />
<br />
<br />
4.......empty运算符 <br />
empty运算符主要用来判断值是否为null或空的,如果为空或null就返回true. 例如 ${empty param.name}(param内置对象,后面讲解) <br />
<br />
5........使用EL从表达中取得数据 <br />
与输入有关的隐含对象有两个:param和paramValues,他们两个是EL中的内置对象.一般而言,我们在取得用户的请求参数时,可以利用下列方法:request.getParameter(String name)和request.getParameterValues(String name),而在EL中可以是用param和paramValues两者来取得数据.以上的两句等价于${param.name}和${paramValues.name},而${paramValues.hobbies[0]}可以通过指定下标来访问特定的参数的值; <br />
<br />
EL的内置对象 <br />
属性范围 在EL中的对象 <br />
page pageScope <br />
request requestScope <br />
session sessionScope <br />
application applicationScope <br />
在EL中使用内置对象的属性${requestScope.user}等价于 &lt;%=request.getParameter("user")%&gt;. 如果不指定范围,那就会在不同的范围间进行搜索. <br />
<br />
&nbsp; 对象&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 类 型&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 说 明 <br />
PageContext&nbsp; &nbsp; &nbsp; |&nbsp; javax.servlet.ServletContext |表示此JSP的PageContext <br />
----------------------------------------------------------------------------------- <br />
PageScope&nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; java.util.Map&nbsp; &nbsp; &nbsp; &nbsp; |取得Page范围的属性名称所对应的值 <br />
------------------------------------------------------------------------------------- <br />
RequestScope&nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; java.util.Map&nbsp; &nbsp; &nbsp; &nbsp; |取得Request范围的属性名称所对应的值 <br />
------------------------------------------------------------------------------------- <br />
sessionScope&nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; java.util.Map&nbsp; &nbsp; &nbsp; &nbsp; |取得Session范围的属性名称所对应的值 <br />
------------------------------------------------------------------------------------- <br />
applicationScope |&nbsp; &nbsp; &nbsp; &nbsp; java.util.Map&nbsp; &nbsp; &nbsp; &nbsp; |取得Application范围的属称所对应的值 <br />
------------------------------------------------------------------------------------- <br />
param&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; java.util.Map&nbsp; &nbsp; &nbsp; &nbsp; |如同ServletRequest.getParameter(String&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |name)返回String类型的值 <br />
---------------------------------------------------------------------------------------- <br />
paramValues&nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; java.util.Map&nbsp; &nbsp; &nbsp; &nbsp; |如同ServletRequest.getParameterValues&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |(String name)。返回String []类型的值 <br />
----------------------------------------------------------------------------------------- <br />
header&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; java.util.Map&nbsp; &nbsp; &nbsp; &nbsp; |如同ServletRequest.getHeader(String name)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |返回String类型的值 <br />
------------------------------------------------------------------------------------------ <br />
headerValues&nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; java.util.Map&nbsp; &nbsp; &nbsp; &nbsp; |如同ServletRequest.getHeaders(String name)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |。返回String []类型的值 <br />
------------------------------------------------------------------------------------------ <br />
cookie&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; java.util.Map&nbsp; &nbsp; &nbsp; &nbsp; |如同HttpServletRequest.getCookies( ) <br />
------------------------------------------------------------------------------------------ <br />
initParam&nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; java.util.Map&nbsp; &nbsp; &nbsp; &nbsp; |如同ServletContext.getInitParameter(String&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |name)。返回String类型的值 <br />
------------------------------------------------------------------------------------------- <br />
<br />
<br />
pageContext对象 <br />
<br />
我们可以使用 ${pageContext}来取得其他有关用户要求或页面的详细信息。下面列出了几个比较常用的部分。 <br />
<br />
Expression&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 说 明 <br />
${pageContext.request}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |取得请求对象 <br />
${pageContext.session}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |取得session对象&nbsp; <br />
${pageContext.request.queryString}&nbsp; &nbsp; &nbsp; |取得请求的参数字符串 <br />
${pageContext.request.requestURL}&nbsp; &nbsp; &nbsp; |取得请求的URL，但不包括请求之参数字符串 <br />
${pageContext.request.contextPath}&nbsp; &nbsp; &nbsp; |服务的web application的名称 <br />
${pageContext.request.method}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |取得HTTP的方法(GET、POST) <br />
${pageContext.request.protocol}&nbsp; &nbsp; &nbsp; &nbsp; |取得使用的协议(HTTP/1.1、HTTP/1.0) <br />
${pageContext.request.remoteUser}&nbsp; &nbsp; &nbsp; |取得用户名称 <br />
${pageContext.request.remoteAddr }&nbsp; &nbsp; &nbsp; |取得用户的IP地址 <br />
${pageContext.session.new}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |判断session是否为新的，所谓新的session，表示刚由 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; server产生而client尚未使用 <br />
${pageContext.session.id}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |取得session的ID <br />
${pageContext.servletContext.serverInfo}|取得主机端的服务信息 <br />
<br />
<br />
JSTL（JSP标准标签库） <br />
<br />
JSTL由核心标签， &lt;c:... &gt; ，xml解析标签 &lt;x:...&gt;，国际化标签 &lt;fmt:....&gt;，数据库访问标签 &lt;sql:...&gt;，函数标签 &lt;fn:...&gt; <br />
<br />
核心标签 <br />
Core <br />
&lt;%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%&gt; <br />
<br />
属性设置 <br />
&lt;c:set&gt; 设置属性 <br />
&lt;c:remove&gt; 移除设置的属性 <br />
<br />
过程控制 <br />
<br />
&lt;c:if test="..."&gt; 条件标签 只有在test属性的值为true是才会执行标签体&nbsp; <br />
例： <br />
&lt;c:if test="${!(empty user.age)}"&gt; <br />
&nbsp; &nbsp; &nbsp; &lt;h1&gt;hello &lt;/h1&gt; <br />
&lt;/c:if&gt; <br />
&nbsp; <br />
&lt;c:choose&gt;choose和when是组合在一起使用的，有点类似于switch case的语法&nbsp; 。 <br />
&lt;c:when test="..."&gt;when也是条件判断标签，test属性的值为true是才会执行标签体。 <br />
例： <br />
&lt;c:choose&gt; <br />
&lt;c:when test="${param.age &lt;18}"&gt; <br />
&nbsp; &lt;h1&gt;you is a child &lt;h1&gt; <br />
&lt;/c:when&gt; <br />
&lt;c:when test="${param.age&gt;18 and param.age &lt;50 }"&gt; <br />
&nbsp; &nbsp; &lt;h1&gt;you is a young person &lt;/h1&gt; <br />
&lt;/c:when&gt; <br />
&lt;c:when test="${param.age&gt;50}"&gt; <br />
&nbsp; &nbsp; &lt;h1&gt;you is a old person &lt;/h1&gt; <br />
&lt;/c:when&gt; <br />
&lt;/c:choose&gt;&nbsp; <br />
<br />
&lt;c:forEach&gt;迭代标签 <br />
例: <br />
&lt;c:forEach var="book" item="${store.books}" varStatus="status"&gt; <br />
&nbsp; &nbsp; &lt;h1&gt;${book.parice} &lt;/h1&gt; <br />
&lt;/c:forEach&gt; <br />
&lt;c:forEach begin="1" end="5" step="1"&gt; <br />
&nbsp; &nbsp; &lt;h1&gt;hello &lt;/h1&gt; <br />
&lt;/c:forEach&gt; <br /><img src ="http://www.blogjava.net/wangbbs2007/aggbug/297598.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangbbs2007/" target="_blank">乐java乐</a> 2009-10-09 20:25 <a href="http://www.blogjava.net/wangbbs2007/articles/297598.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>