发现EL使用起来挺方便,至少不用<%= %>了,如果单纯使用EL不需要引入jar包,本人是将其与Struts整合使用。
1.首先是我的Struts-config.xml
<?
xml version="1.0" encoding="ISO-8859-1"
?>

<!
DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"
>

<
struts-config
>
<
action-mappings
>
<
action
path
="/jstlel"
type
="com.codedestiny.struts.JSTLELAction"
>
<
forward
name
="success"
path
="/jstlel.jsp"
></
forward
>
</
action
>
</
action-mappings
>
<
message-resources
parameter
="MessageResources"
/>
</
struts-config
>

2.JSTLELAction.java
package
com.codedestiny.struts;

import
java.util.ArrayList;
import
java.util.HashMap;
import
java.util.Map;

import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;

import
org.apache.struts.action.Action;
import
org.apache.struts.action.ActionForm;
import
org.apache.struts.action.ActionForward;
import
org.apache.struts.action.ActionMapping;


public
class
JSTLELAction
extends
Action
...
{


public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{
request.setAttribute("hello", "Hello World");
Group relatedGroup = new Group();
relatedGroup.setName("SUN");
User u = new User();
u.setUsername("CodeDestiny");
u.setAge(21);
u.setRelatedGroup(relatedGroup);
request.setAttribute("user", u);
Map<String, Integer> hashMap = new HashMap<String, Integer>();
hashMap.put("key1", 1);
hashMap.put("key2", 2);
request.setAttribute("map", hashMap);

String[] array = new String[]...{"a", "b", "c", "d"};
request.setAttribute("array", array);
request.setAttribute("value1", "");
request.setAttribute("value2", new ArrayList());

request.setAttribute("value3", new int[]...{1, 2});
return mapping.findForward("success");
}
}
3.与之对应的jstlel.jsp
<%
@ page language
=
"
java
"
import
=
"
java.util.*
"
pageEncoding
=
"
GB18030
"
%>
<!
DOCTYPE HTML PUBLIC
"
-//W3C//DTD HTML 4.01 Transitional//EN
"
>
<
html
>
<
head
>
</
head
>
<
body
>
<
h1
>
测试EL表达式
</
h1
>
<
hr
>

<
li
>
简单的EL表达式,其用法是 $ 和
...
{ }
</
li
><
br
>

1
+
2
=
$
...
{1 + 2}
<
br
>

2
×
10
=
$
...
{2 * 10}
<
br
>
<
hr
>
<
li
>
EL表达式隐式对象:pageScope,requestScope,sessionScope,applicationScope等,如果未指定scope,它的搜索顺序是:page
~
application
</
li
><
br
>
hello(jsp):
<%=
request.getAttribute(
"
hello
"
)
%><
br
>

hello(el): $
...
{hello}
<
br
>

hello(el scope
=
requestScope): $
...
{requestScope.hello}
<
hr
>
<
li
>
使用.进行导航,也称存储器
</
li
><
br
>

姓名: $
...
{ user.username }
<
br
>

年龄: $
...
{ user.age }
<
br
>

所属组: $
...
{ user.relatedGroup.name }
<
br
>
<
hr
>
<
li
>
使用存储器取出map中的值
</
li
><
br
>

map.key1 : $
...
{ map.key1 }
<
br
>

map.key2 : $
...
{ map.key2 }
<
br
>
<
hr
>
<
li
>
用[]对数组中的元素进行访问
</
li
><
br
>

array[
1
] : $
...
{ array[1] }
<
br
>
<
hr
>
<
li
>
EL支持的表达式
</
li
><
br
>

10
/
5
=
$
...
{ 10 / 5 }
<
br
>

10
div
5
=
$
...
{ 10 div 5 }
<
br
>

10
%
5
=
$
...
{ 10 % 5 }
<
br
>

10
mod
5
=
$
...
{ 10 mod 5 }
<
br
>
<!--
==
在EL中可表示为 eq
!
=
在EL中可表示为 ne
<
在EL中可表示为 lt
>
在EL中可表示为 gt
<=
在EL中可表示为 le
>=
在EL中可表示为 ge
&&
在EL中可表示为 and
||
在EL中可表示为 or
!
在EL中可表示为 not
/
在EL中可表示为 div
%
在EL中可表示为 mod
-->
<
hr
>
<
li
></
li
>
测试empty
<
br
>

value1 empty
?
: $
...
{ empty value1 }
<
br
>

value2 empty
?
: $
...
{ empty value2 }
<
br
>

value3 empty
?
: $
...
{ empty value3 }
<
br
>
</
body
>
</
html
>