【JavaWeb】EL表达式与JSTL标签

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是sun公司开发的一套标签库,使用JSTL可以在页面中实现一些简单的逻辑,从而替换页面中的脚本代码。
在页面中使用JSTL标签需完成以下2个步骤:

1、导入jstl.jar和standerd.jar这两个JSTL的jar文件。

2、在JSP页面中使用<%@tablib url=“”  prifix=“”%>元素导入标签库。

JSTL标签库中常用标签:

<c:foreach var=“”items=“”>

<c:if test=“”>


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="cn.itcast.domain.Person"%>
<%@page import="cn.itcast.domain.Address"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>    
    <title>el表达式</title>
  </head>
  <body>
    
    <% 
    	request.setAttribute("name","xxx");
    %>
    
    ${name1 }   <!-- pageContext.finaAttribute("name") page request session application -->
    
    
    <br/>--------------el表达式可以很方便的获取bean的属性0-----------<br/>
    <% 
    	Person p = new Person();
    	p.setAge(12);
    	request.setAttribute("person",p);
    %>
    ${person.age }
    
    
    <br/>--------------el表达式可以很方便的获取bean中的bean中的。。。。的属性-----------<br/>
    <% 
    	p = new Person();
    	p.setAddress(new Address());
    	request.setAttribute("person",p);
    %>
    ${person.address.city }
    
    <br/>--------------el表达式可以很方便的获取集合中的数据-----------<br/>
    <% 
    	List list = new ArrayList();
    	list.add(new Person());
    	list.add("aaa");
    	request.setAttribute("list",list);
    %>
    ${list[0].age }
    ${list[1] }
    
     <br/>--------------el表达式可以很方便的获取map集合中的数据-----------<br/>
    <% 
    	Map map = new HashMap();
    	map.put("aa","xxx");
    	map.put("bb","yyyy");
    	map.put("cc","zzzzz");
    	map.put("1","11111");
    	request.setAttribute("map",map);
    %>
    ${map.aa }
    ${map["1"] }
    
    
    <br/>--------------其它的常用el表达式-----------<br/>
    <a href="/test/1.jsp">点点</a>
    <a href="${pageContext.request.contextPath }/1.jsp">点点</a>
    
    <a href="${pageContext.request.contextPath }/1.jsp">点点</a>
    
  </body>
</html>

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page import="cn.itcast.domain.Person"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>    
    <title>jstl示例代码</title>
  </head>
  
  <body>
     <br/>--------------使用jstl+el表达式迭代集合中的数据-----------<br/>
    <% 
    	List list = new ArrayList();
    	list.add(new Person("aaa"));
    	list.add(new Person("bbb"));
    	list.add(new Person("ccc"));
    	request.setAttribute("list",list);
    %>
    
    <c:forEach var="person" items="${list}">
    	${person.name }
    </c:forEach>
    
    
     <br/>--------------使用jstl+el表达式迭代map集合中的数据-----------<br/>
    <% 
    	Map map = new HashMap();
    	map.put("aa","xxx");
    	map.put("bb","yyyy");
    	map.put("cc","zzzzz");
    	map.put("1","11111");
    	request.setAttribute("m",map);
    %>
    
    <c:forEach var="me" items="${m}">  
    	${me.key } = ${me.value }<br/>
    </c:forEach>
    
    <c:if test="${user!=null}">
    	欢迎您:${user.username }
    </c:if>
    <c:if test="${user==null}">
    	<form>
    		用户名
    	</form>
    </c:if>
    
    
    
  </body>
</html>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值