您的位置:首页 > 编程语言 > Java开发

javaweb之jstl+el完成数据迭代

2014-03-17 11:10 459 查看
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page import="test.domain.Person"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>使用jstl+el完成数据迭代</title>
</head>

<body>
<%--模仿servlet转发数据给JSP 数据以集合形式带过来--%>
<%
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);
%>
<%--在JSP中迭代数据 --%>
<c:forEach var="person" items="${list}">	<%-- var:把每次迭代的值用变量记住 	items:迭代的集合 --%>
${person.name}<br/><%-- 拿到迭代出来的每个对象的名称 --%>
</c:forEach>

<%--模仿servlet转发数据给JSP 数据以Map集合形式带过来--%>
<%
Map<String,Person> map = new HashMap<String,Person>();
map.put("aa", new Person("aaaaaa"));
map.put("bb", new Person("bbbbbb"));
map.put("cc", new Person("cccccc"));
map.put("dd", new Person("dddddd"));
map.put("11", new Person("111111"));
request.setAttribute("map", map);
%>
<%--在JSP中迭代Map集合数据 --%>
<%--
其实forEach在对Map集合进行迭代的时候,并不是对Map集合进行迭代 ,而是对Map的entrySet方法返回的Set集合进行迭代,
Set集合中每个值是Map.entry(Set<Map.entry>),所以说forEach标签中每次迭代出的值是个entry
--%>
<c:forEach var="entry" items="${map }">
${entry.key }:${entry.value.name}<br/><%-- 拿到迭代出来的每个Map.entry对象的key和value的name属性 --%>
</c:forEach>

<%--代表用户登陆了,用户登陆了后user会存在session域中 --%>
<c:if test="${user!=null}">
欢迎您:${user.username}
</c:if>
<%--代表用户没登陆了,给用户输出一个登录表单--%>
<c:if test="${user==null}">
<form action="" method="post">
用户名:<input type="text" name="username"/><br/>
密码:<input type="password" name="password"/><br/>
<input type="submit" value="登录"/><br/>
</form>
</c:if>
</body>
</html>
package test.domain;

import java.util.Date;

public class Person {
private String name="aaa";
private int age;
private Date birthday;

public Person() {
super();
// TODO Auto-generated constructor stub
}
public Person(String name) {
super();
this.name = name;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

使用jstl需要引入:jstl.jar和standard.jar这两个jar包并在页面中使用<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>元素导入标签库
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: