日期:2014-05-16  浏览次数:20467 次

EL表达式和JSTL标签快速入门
<%
String data="my data";
request.setAttribute("data",data);
%>
${data } <%--pageContext.findAttribute("data") page request session application --%> <%
Person p=new Person();
p.setName("namenamename");
request.setAttribute("p",p);
%>

${p.name }

<%
Person p1=new Person();
Address a=new Address();
a.setCity("huang gang");
p1.setAddress(a);
request.setAttribute("p1",p1);
%>

${p1.address.city }

<%
List list=new ArrayList();
list.add(new Address("上海"));
list.add(new Address("北京2"));
list.add(new Address("武汉"));
request.setAttribute("list",list);
%>

${list[1].city } <%--北京2 --%>
<c:forEach var="a" items="${list}">
${a.city}
</c:forEach>

<%
Map map=new HashMap();
map.put("aa",new Address("上海"));
map.put("bb",new Address("北京2"));
map.put("cc",new Address("武汉"));
map.put("111",new Address("南京"));
request.setAttribute("map",map);
%>

${map.aa.city } <%--上海 --%>
${map["111"].city } <%--南京 ,通常用点号,点号取不出来用[]--%>

<c:forEach var="b" items="${map }">
${b.key } : ${b.value.city } <br/>
</c:forEach>

//得到当前应用的根目录
${pageContext.request.contextPath }<%--/day09  --%>

//条件判断
<c:if test="${user!=null }">
欢迎
</c:if>
<c:if test="${user==null }">
请登录
</c:if>
http://jstl.java.net/


EL表达式用于获取数据,在JSP页面中可使用${标识符}的形式,通知JSP引擎调用pageContext.findAttribute()方法,以标识符为关键字从各个域对象中获取对象。如果域对象中不存在标识符所对应的对象,则返回结果为””(注意,不是null)。
示例:使用EL表达式获取request、session、applection域中的数据。
EL表达式中也可以使用${customerBean.address}的形式来访问JavaBean对象的属性。
示例:使用EL表达式获取Bean属性。
结合JSTL标签,EL表达式也可轻松获取各种集合中的元素。
示例:使用EL表达式获取List、Map集合中的元素。
EL表达式也可使用类如${1==1}的形式进行简单的逻辑判断。
JSTL标签库
JSTL是sun公司开发的一套标签库,使用JSTL可以在页面中实现一些简单的逻辑,从而替换页面中的脚本代码。
在页面中使用JSTL标签需完成以下2个步骤:
http://tomcat.apache.org/taglibs/standard/
在Referenced Libraries/standard.jap/META-INF/c.tld有uri定义
C:\Tomcat 7.0\webapps\examples\WEB-INF\lib     有该文件
1、导入jstl.jar和standerd.jar这两个JSTL的jar文件。
2、在JSP页面中使用<%@ tablib uri=””  prifix=”” %>元素导入标签库。
JSTL标签库中常用标签:
<c:foreach var=“” items=“”>
<c:if test=“”>

右键/重构/move可把一个类移动到隐藏的父包中,