为了避免在JSP页面中出现Java代码和显示Servlet处理完成带过来的数据并且显示,使用EL表达式会非常容易而且简介,但是对于存放在容器中的数据,EL表达式不能单独完成迭代输出,所以必须使用JSTL标签库配合使用,这个是JavaEE附带的一个非常强大的标签库,估计在以后还会用到。
首先是EL表达式的几个不同情况的用法
<%@page import="com.bird.domain.Db"%>
<%@page import="com.bird.domain.Address"%>
<%@page import="com.bird.domain.Person"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>EL表达式的应用</title>
</head>
<body>
<%
String date = "abcd";
request.setAttribute("date",date);
%>
${date} <!-- 会被翻译成pageContext.findAttribute("date")分别从page,request,session,servletcontext查找
如果寻找不到,则返回“”空字符串
-->
<%
Person p = new Person();
p.setName("小白");
request.setAttribute("person",p);
%>
${person.name}
<%
Person p1= new Person();
Address a = new Address();
a.setCity("北京");
p1.setAddress(a);
request.setAttribute("p1",p1);
%>
${p1.address.city}
<%
List<Db> list = new ArrayList<Db>();
list.add(new Db("aaaaaa"));
list.add(new Db("bbbbbb"));
list.add(new Db("cccccc"));
request.setAttribute("list",list);
%>
${list[1].name }
<%
Map map = new HashMap();
map.put("aa",new Db("aaaa"));
map.put("bb",new Db("bbbb"));
map.put("cc",new Db("cccc"));
map.put("dd",new Db("dddd"));
request.setAttribute("map",map);
%>
${map.aa.name }<%--用表达式一般用点号,点号不行用[] --%>
${pageContext.request.contextPath }
</body>
</html>
下面的是使用El表达式和JSTL标签库配合使用来完成容器的迭代
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@page import="com.bird.domain.Db"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>使用JSTL+EL表达式完成集合迭代</title>
</head>
<body>
<%
List<Db> list = new ArrayList<Db>();
list.add(new Db("aaaaaa"));
list.add(new Db("bbbbbb"));
list.add(new Db("cccccc"));
request.setAttribute("list",list);
%>
<c:forEach var="person" items="${list }">
${person.name }
</c:forEach>
<br/>
<%
Map map = new HashMap();
map.put("aa",new Db("aaaa"));
map.put("bb",new Db("bbbb"));
map.put("cc",new Db("cccc"));
map.put("dd",new Db("dddd"));
request.setAttribute("map",map);
%>
<c:forEach var="entry" items="${map }">
${entry.key } : ${entry.value.name }
</c:forEach>
</body>
</html>
分享到:
相关推荐
EL表达式 (详解) EL表达式 1、EL简介 1)语法结构 ${expression} 2)[]与.运算符 EL 提供.和[]两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 ...
当然,EL表达式还能配合JSTL标签,进行其他一些功能的显示,例如迭代等等。 我们先来看使用EL表达式来获取数据 在JSP页面中使用${标识符}的形式,就是通知JSP引擎在Servlet中调用pageContext.findAttribute(...
JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。在 developerworks 上其新系列...
JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。在developerWorks 上其新系列的...
jstl需要导入的两个jar包:...Jstl.jar包是一款java中项目中如果要使用JSTL和EL表达式,就必须导入jstl.jar和standard.jar文件,可以让程序猿们在日常生活中更节约时间。需要的童鞋可以下载学习使用,下载地址安全无误!
jstljar包,jsp页面使用jstl...Jstl.jar包是一款java中项目中如果要使用JSTL和EL表达式,就必须导入jstl.jar和standard.jar文件,可以让程序猿们在日常生活中更节约时间。需要的童鞋可以下载学习使用,下载地址安全无误!
JSP 标准标记库是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。jstl语言,el表达式必需的包
主要内容包括:Servlet、JSP、EL表达式、JSTL标签库、Filter过滤器、Listener监听器。在讲解过程中采用的手法是从0到1,让小白学会源码分析,让大牛眼前一亮。总之,不管你是小白,还是已经在从事Java开发的工作者,...
主要内容包括:Servlet、JSP、EL表达式、JSTL标签库、Filter过滤器、Listener监听器。在讲解过程中采用的手法是从0到1,让小白学会源码分析,让大牛眼前一亮。总之,不管你是小白,还是已经在从事Java开发的工作者,...
第17章 jsp标准标签库(jstl) 490 17.1 jstl简介 490 17.2 配置jstl 491 17.3 core标签库 491 17.3.1 一般用途的标签 492 17.3.2 条件标签 496 17.3.3 迭代标签 498 17.3.4 url相关的标签 501 17.4 i18n...
第17章 jsp标准标签库(jstl) 490 17.1 jstl简介 490 17.2 配置jstl 491 17.3 core标签库 491 17.3.1 一般用途的标签 492 17.3.2 条件标签 496 17.3.3 迭代标签 498 17.3.4 url相关的标签 501 17.4 i18n...
第17章 jsp标准标签库(jstl) 490 17.1 jstl简介 490 17.2 配置jstl 491 17.3 core标签库 491 17.3.1 一般用途的标签 492 17.3.2 条件标签 496 17.3.3 迭代标签 498 17.3.4 url相关的标签 501 17.4 i18n...
第17章 jsp标准标签库(jstl) 490 17.1 jstl简介 490 17.2 配置jstl 491 17.3 core标签库 491 17.3.1 一般用途的标签 492 17.3.2 条件标签 496 17.3.3 迭代标签 498 17.3.4 url相关的标签 501 17.4 i18n...
{3.4}正则表达式}{71}{section.3.4} {3.5}StringBuffer}{75}{section.3.5} {3.6}StringBuilder}{76}{section.3.6} {3.7}StringBuilder与StringBuffer的缺点}{76}{section.3.7} {3.8}内部类}{77}{section.3.8} ...