<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
Map map=new HashMap();
map.put(1,"苹果");
map.put(2,"梨子");
map.put(3,"香蕉");
 %>
 
 <c:forEach var="entry" items="${map}">
  下一个元素的键是${entry.key }
  下一个元素的值是${entry.value }<p/>
 </c:forEach>为什么没有结果,不知道哪错了?
还有<%   %>里面定义的变量是不是属于page范围内?
谢谢,刚学Jsp没多久。。

解决方案 »

  1.   

    楼主,items只能从Web容器里面取值的!
    <%
    Map map=new HashMap();
    map.put(1,"苹果");
    map.put(2,"梨子");
    map.put(3,"香蕉");
     %>改成<%
    Map map=new HashMap();
    map.put(1,"苹果");
    map.put(2,"梨子");
    map.put(3,"香蕉");
    pageContext.setAttribute.setAttribute("map",map);
     %>
    这样就可以了。
      

  2.   


    <%
    Map map=new HashMap();
    map.put(1,"苹果");
    map.put(2,"梨子");
    map.put(3,"香蕉");
    //pageContext.setAttribute.setAttribute("map",map);
    //上面这行写错了,改成下面这行
    pageContext.setAttribute("map",map);
     %>
      

  3.   


    顶这个 要么是request传到页面的map?
      

  4.   

     <c:forEach var="entry" items="${map}">
    前提是要放在page/session/application/request中
      

  5.   

    EL只操作属性,所操作的类应该是JavaBean规范的,所操作的属性要有getter, setter.
    ${user.username}: 默认是从request(page)中取,如果request中没有名为username的对象则从session中取,session中没有则从application(servletContext)中取,如果没有取到任何值则不显示。