【JavaWeb】EL表达式与JSTL标签

时间:2022-09-06 13:37:29
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>