EL表达式和JSTL标签的用法举例

Person类

package cn.itcast.domain;

import java.util.Date;

public class Person {

	private String name;
	private Address address;

	public Person() {
	}

	public Person(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Address getAddress() {
		return address;
	}

	public void setAddress(Address address) {
		this.address = address;
	}
}

Address类:

package cn.itcast.domain;

public class Address {

	private String city;

	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city;
	}

}

Servlet要么通过域带过来,对象带过来,集合带过来,所以,EL表达式取出元素的几种方式:

<%@page import="java.util.*"%>
<%@page import="cn.itcast.domain.*"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	<%
		String data = "abcd";
		request.setAttribute("data", data);
	%>
	${data }
	<%--pageContext.findAttribute("data") page request session application --%>
	<br />

	<%
		Person p = new Person();
		p.setName("aaaa");
		request.setAttribute("person", p);
	%>
	${person.name }
	<%--pageContext.findAttribute("person") page request session application --%>
	<br />

	<%
		Person p1 = new Person();
		Address a = new Address();
		a.setCity("成都");
		p1.setAddress(a);
		request.setAttribute("p1", p1);
	%>
	${p1.address.city }
	<br />

	<%
		List<Person> list = new ArrayList<Person>();
		list.add(new Person("aaa"));
		list.add(new Person("bbb"));
		list.add(new Person("ccc"));

		request.setAttribute("list", list);
	%>
	${list[1].name }
	<br />

	<%
		Map<String, Person> map = new HashMap<String, Person>();
		map.put("aa", new Person("aaaaa"));
		map.put("bb", new Person("bbbbb"));
		map.put("cc", new Person("ccccc"));
		map.put("dd", new Person("ddddd"));
		map.put("11", new Person("eeeee"));//一般不以数字作为关键字,若要这么做那么EL表达式的写法为${map['11'].name}

		request.setAttribute("map", map);
	%>
	<!-- 以关键字去找集合的元素 -->
	${map }
	<!-- 找到集合 -->
	<br /> ${map.aa }
	<!-- 用关键字找到对象 -->
	<br /> ${map.bb.name }
	<!-- 找到对象的name -->
	<br /> ${map['11'].name }
	<!-- 用EL表达式取数据一般是用.号,.号取不出数据时用[] -->
	<!-- Servlet要么通过域带过来,对象带过来,集合带过来 -->

	<br />${pageContext.request.contextPath }
	<!-- 获取当前Web应用的名称 -->
	<br /><a href="/Web/index.jsp" />点击</a>	<!-- 一般不能这样写 -->

	<a href="${pageContext.request.contextPath }/index.jsp">点击</a>
</body>
</html>

JSTL标签遍历集合列表:

<%@page import="java.util.*"%>
<%@page import="cn.itcast.domain.Person"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>JSTL标签遍历集合列表</title>
</head>
<body>
<%
		List<Person> list = new ArrayList<Person>();
		list.add(new Person("aaa"));
		list.add(new Person("bbb"));
		list.add(new Person("ccc"));

		request.setAttribute("list", list);//保存到request域中
	%>
	<br />
	<c:forEach var="person" items="${list }">
		${person.name }<br />
	</c:forEach>

	<%
		Map<String, Person> map = new HashMap<String, Person>();
		map.put("aa", new Person("aaaaa"));
		map.put("bb", new Person("bbbbb"));
		map.put("cc", new Person("ccccc"));
		map.put("dd", new Person("ddddd"));
		map.put("11", new Person("eeeee"));//一般不以数字作为关键字,若要这么做那么EL表达式的写法为${map['11'].name}

		request.setAttribute("map", map);
	%>
	<c:forEach var="entry" items="${map }">
		${entry.key }:${entry.value.name }<br />
	</c:forEach>

	<!-- 代表用户登录 -->
	<c:if test="${user!=null }">
		欢迎您:${user.username }
	</c:if>
	<c:if test="${user==null }">
		用户名:<input type="text" name="username"><br />
		密   码:<input type="password" name="password"><br />
		<input type="submit" value="登录" />
	</c:if>
</body>
</html>
时间: 2024-11-09 01:59:56

EL表达式和JSTL标签的用法举例的相关文章

Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用

<转载> 我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用   Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了更好的代码复用.Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求.Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于任何表现层技术,也就是说strtus2提供

JAVA Web基础 EL表达式与JSTL标签库

一.EL表达式语言1.EL表达式全称expression language,用于在JSP页面获取其内置对象的内容语法:${...}在jsp中page指令有一个属性是isELIgnored, 用来标记此页面是否忽略EL表达式, 默认为false,即不忽略2.用法说明常规写法举例:<%= request.getAttribute("test")>EL表达式写法:${test}//当作用域属性名都是唯一时可以这么写            ${requestScope.test}/

EL表达式 与 JSTL标签库

EL表达式 什么是el jsp内置的表达式语言 el表达式的作用 代替脚本 el如何获取数据 1.获取域中的数据 简单数据:${域中的key值} 注意:如果多个域中的key值一样 那么取出的顺序? 从范围小的开始查找,查找到以后就返回 如果没有查询到对应的key 返回""(空字符串) 例如: <% pageContext.setAttribute("num", 5); request.setAttribute("num", 1); sess

EL表达式和JSTL标签

一.EL表达式: 1. 概念:Expression Language 表达式语言2. 作用:替换和简化jsp页面中java代码的编写3. 语法:${表达式}4. 注意:    * jsp默认支持el表达式的.如果要忽略el表达式          1. 设置jsp中page指令中:isELIgnored="true" 忽略当前jsp页面中所有的el表达式          2. \${表达式} :忽略当前这个el表达式5. 使用:         1. 运算:             

EL表达式、 jstl标签

EL表达式(Expression Language) 目的:为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化. 1.语法结构 ${expression} 2.[ ]与.运算符 EL 提供"."和"[ ]"两种运算符来存取数据. 当要存取的属性名称中包含一些特殊字符,如 . 或 - 等并非字母或数字的符号,就一定要使用"[ ]".例如

Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库

一.jsp部分 只要是与页面显示相关的都是重点 1.jsp的脚本 <%java代码%>:被翻译到service方法内部,局部变量,局部的功能 <%=表达式或变量%>:翻译成service方法中out.write(表达式或变量) <%!java代码%>:被翻译成servlet的全局的内容,方法,全局变量 2.jsp的运行原理 jsp在运行时翻译成servlet index.jsp------>work/index_jsp.java----->work/inde

JavaWeb基础—EL表达式与JSTL标签库

EL表达式: EL 全名为Expression Language.EL主要作用 获取数据(访问对象,访问数据,遍历集合等) 执行运算 获取JavaWeb常用对象 调用Java方法(EL函数库) 给出一个小案例: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="com.jiangbei.domain

EL表达式和JSTL标签库使用详解

JavaBean在JSP中的局限 获取JavaBean属性必须要实例化 强制类型转化 <% Employee employee = (Employee)request.getAttribute("employee"); Computer comp = employee.getComputer(); String manufacturer = comp.getManufacturer(); %> 如果页面编写出现逻辑错误,将会导致代码执行错误,并且JSP页面编译页面时也会产生

EL表达式和JSTL标签库

1 EL表达式 1.1 EL的概述 EL,全名为Expression Language. 主要作用: ①EL表达式主要用于替换jsp页面中的脚本表达式,以便于从各种类型的web域中检索java对象(某个web域中的对象),获取数据(访问javabean的属性.访问List集合.访问Map集合.访问数组). ②执行运算. ③利用EL表达式可以在jsp页面中执行一些基本的关系运算.逻辑运算和算数运算,以便于在jsp页面完成一些简单的逻辑运算. ④获取web开发常用的对象. ⑤EL表达式定义了一些隐式