<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Marshal&#039;s Blog &#187; el</title>
	<atom:link href="http://marshal.easymorse.com/archives/tag/el/feed" rel="self" type="application/rss+xml" />
	<link>http://marshal.easymorse.com</link>
	<description>It&#039;s swap of marshal&#039;s memory.</description>
	<lastBuildDate>Mon, 30 Jan 2012 07:03:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>JSP EL语法小结</title>
		<link>http://marshal.easymorse.com/archives/420?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=jsp-el%25e8%25af%25ad%25e6%25b3%2595%25e5%25b0%258f%25e7%25bb%2593</link>
		<comments>http://marshal.easymorse.com/archives/420#comments</comments>
		<pubDate>Sat, 05 Jun 2004 01:14:57 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[el]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jee]]></category>
		<category><![CDATA[jsp]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/blog/archives/420</guid>
		<description><![CDATA[EL和JSTL用来替代JSP小脚本，削弱页面编程的灵活度，简化和规范页面编程。 EL的作用 提供复杂表达式(Java对象) 访问一个任意Java对象的属性（比小脚本简化，提供更方便的机制，比如空值默认为空字符串等） EL的使用环境 EL只能在JSP2.0/Servlet2.4标准的容器内使用，JSTL却可以通过jar文件支持，在JSP1.2/Servlet2.3容器内使用。 基本语法 访问对象 ${user.email } 使user必须是放置在某个作用域（比如request）的对象，在作用域中的name为user，并具有email属性。 EL的限制 不能声明变量。需要JSTL或者标准JavaBean Action声明变量。 EL作用域和自动搜索机制 和JSP的4个作用域对应： pageScope requestScope sessionScope applicationScope 通过作用域和名称指定对象： ${pageScope.pageValue } 如果不指定作用域，EL自动按照由小到大次序查找： -&#62;page-&#62;request-&#62;session-&#62;application-&#62;null 访问HTTP参数 替代JSP类似的写法： &#60;%=request.getParameter(“name”)%&#62; EL的写法： ${param.name } 访问HTTP请求头部信息 可以通过EL的3个内置对象访问： header headerValues cookie   示例： Session Id: ${cookie.JSESSIONID.value} 访问初始化参数 访问web.xml中定义的初始化参数： &#60;context-param&#62; &#60;param-name&#62;siteName&#60;/param-name&#62; &#60;param-value&#62;Marshal&#8217;s Blog&#60;/param-value&#62;&#60;/context-param&#62; EL中调用： ${initParam.siteName } EL操作符 算术运算符: +,-,*,/ &#8230; 条件运算符： [...]]]></description>
			<content:encoded><![CDATA[<p>EL和JSTL用来替代JSP小脚本，削弱页面编程的灵活度，简化和规范页面编程。</p>
<p><span id="more-420"></span></p>
<h3>EL的作用</h3>
<ul>
<li>提供复杂表达式(Java对象)</li>
<li>访问一个任意Java对象的属性（<em>比小脚本简化，提供更方便的机制，比如空值默认为空字符串等</em>）</li>
</ul>
<h3><strong>EL的使用环境</strong></h3>
<p>EL只能在JSP2.0/Servlet2.4标准的容器内使用，JSTL却可以通过jar文件支持，在JSP1.2/Servlet2.3容器内使用。</p>
<h3>基本语法</h3>
<h4>访问对象</h4>
<blockquote><p>${user.email }</p></blockquote>
<p>使user必须是放置在某个作用域（比如request）的对象，在作用域中的<em>name</em>为<em>user</em>，并具有email属性。</p>
<h4>EL的限制</h4>
<p>不能声明变量。需要JSTL或者标准Java<tt></tt>Bean Action声明变量。</p>
<h4>EL作用域和自动搜索机制</h4>
<p>和JSP的4个作用域对应：</p>
<ol>
<li>pageScope</li>
<li>requestScope</li>
<li>sessionScope</li>
<li>applicationScope</li>
</ol>
<p>通过作用域和名称指定对象：</p>
<blockquote><p>${pageScope.pageValue }</p></blockquote>
<p>如果不指定作用域，EL自动按照由小到大次序查找：</p>
<blockquote><p>-&gt;page-&gt;request-&gt;session-&gt;application-&gt;null</p></blockquote>
<h4><span style="color: #000000;">访问HTTP参数</span></h4>
<p>替代JSP类似的写法：</p>
<blockquote><p>&lt;%=request.getParameter(“name”)%&gt;</p></blockquote>
<pre><span style="color: #000000;">EL的写法：</span></pre>
<blockquote><p>${param.name }</p></blockquote>
<h4><span style="color: #000000;">访问HTTP请求头部信息</span></h4>
<p>可以通过EL的3个内置对象访问：</p>
<ol>
<li>header</li>
<li>headerValues</li>
<li>cookie</li>
</ol>
<ul>
<li> </li>
<p>示例：</ul>
<blockquote><p>Session Id: ${cookie.JSESSIONID.value}</p></blockquote>
<h4>访问初始化参数</h4>
<p>访问web.xml中定义的初始化参数：</p>
<blockquote><p>&lt;context-param&gt; &lt;param-name&gt;siteName&lt;/param-name&gt; &lt;param-value&gt;Marshal&#8217;s Blog&lt;/param-value&gt;&lt;/context-param&gt;</p></blockquote>
<p>EL中调用：</p>
<blockquote><p>${initParam.siteName }</p></blockquote>
<h4>EL操作符</h4>
<p>算术运算符: +,-,*,/ &#8230;</p>
<p>条件运算符：</p>
<blockquote><p>${(user.male)?”男”:”女”}</p></blockquote>
<p>逻辑运算符: &amp;&amp;, ||&#8230;</p>
<p>比较运算符: &gt;,&lt;,== &#8230;</p>
<p>空操作符: empty</p>
<blockquote><p>${empty userName }</p></blockquote>
<h4>EL导航符</h4>
<pre>一般使用“.”符：</pre>
<blockquote><p>{user.email }</p></blockquote>
<p>也可以用“[]”符：</p>
<blockquote><p>${user["name"] }</p></blockquote>
<p>这在属性名称中包含“.”符号时非常有用。</p>
<h4>访问集合对象</h4>
<p>访问Map，比如Map中有个<em>key</em>为<em>email</em>：</p>
<blockquote><p>${userMap.email }</p></blockquote>
<p>访问List, 和数组类似, 只能使用”[]“操作符：</p>
<blockquote><p>${userList[0] }</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/420/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

