上次发贴没把代码贴完,这次贴完问:
Servlet代码为:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { request.getRequestDispatcher("index.jsp").forward(request, response);

GetShops getshop=new GetShops();

List<Map<String, Object>> shoplist=  getshop.getshops();
request.setAttribute("shops",shoplist);

System.out.println("商品信息 " + shoplist);
}
GetShops 类:
package bll;import java.util.ArrayList;
import java.util.List;
import java.util.Map;import utils.JdbcUtils;
import utils.PageSet;public class GetShops {
private JdbcUtils jdbcUtils;
public GetShops(){
jdbcUtils=new JdbcUtils();
}
public List<Map<String, Object>> getshops(){
String sql="select * from shops order by sid desc";
return jdbcUtils.query(sql);
}
}
jsp页面代码:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE html><html>
<head>
<title>南华零食网</title>
</head>
<link href="./nhshop.css" rel="stylesheet" type="text/css" />
<body>
<%@ include file="header.jsp" %>

<div class="bigbox">
<div class="bigad">
<div class="ad">
<div class="menu">
<div class="menu_list">
<h3><a href="#" class="new_sort2"  title="坚果炒货">坚果炒货</a></h3>
</div>
<div class="menu_list">
<h3><a href="#" class="new_sort3"  title="饼干糕点">饼干糕点</a></h3>
</div>
<div class="menu_list">
<h3><a href="#" class="new_sort4"  title="糖果巧克力">糖果巧克力</a></h3>
</div>
<div class="menu_list">
<h3><a href="#" class="new_sort5"  title="蜜饯果干">蜜饯果干</a></h3>
</div>
<div class="menu_list">
<h3><a href="#" class="new_sort6"  title="肉类制品">肉类制品</a></h3>
</div>
<div class="menu_list">
<h3><a href="#" class="new_sort7"  title="海味零食">海味零食</a></h3>
</div>
<div class="menu_list">
<h3><a href="#" class="new_sort8"  title="膨化零食">膨化零食</a></h3>
</div>
<div class="menu_list">
<h3><a href="#" class="new_sort9"  title="饮料/罐头/牛奶">饮料/罐头/牛奶</a></h3>
</div>
<div class="menu_list">
<h3><a href="#" class="new_sort10"  title="豆菌笋类">豆菌笋类</a></h3>
</div>
<div class="menu_list">
<h3><a href="#" class="new_sort11"  title="速食/方便面">速食/方便面</a></h3>
</div>
<div class="menu_list">
<h3><a href="#" class="new_sort12"  title="特产零食">特产零食</a></h3>
</div>
<div class="menu_list">
<h3><a href="#" class="new_sort13"  title="进口零食">进口零食</a></h3>
</div>
</div>
  <!--淡入淡出-->
        <nav>
            <ul id="index">
                <li class="on"></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
            <ul id="img">
                <li class="opa-on"><img src="./images/01.jpg" alt="img1"></li>
                <li><img src="./images/02.jpg" alt="img2"></li>
                <li><img src="./images/03.jpg" alt="img3"></li>
                <li><img src="./images/04.jpg" alt="img4"></li>  
            </ul>
        </nav>
</div>
<div class="clearfloat"></div>
</div>
<div class="mtitle bigad"><span>每日秒杀</span>
<p class="md">剩余时间:0:0:0</p>
</div>
<div class="content bigad">

<div class="left"></div>
<div class="right"><img src="./images/content_bottom.png" class="right_img">
<ul>
 <c:forEach items="${shoplist}" var="shop">
<li>
<p><a href="javascript:;"><img src="${shop.simg}"></a></p>
<p><a href="javascript:;" class="name">${shop.sname}</a></p>
<p class="price"><em>¥</em>
 ${shop.sprice}
</p>
</li>
</c:forEach>
</ul>
</div>
<div class="clearfloat"></div>
</div>
<div class="floor bigad">
<div class="mtitle"><span>优惠促销</span></div>
<div class="shop_list">
<ul>
<c:forEach items="${shops}" var="index2">
<li>
<p><a href="#"><img src="${index2.simg}"></a></p>
<p><a href="#" class="name">${index2.sname}</a></p>
<p class="price"><em>¥</em>
${index2.sprice}
</p>
</li>
</c:forEach>
</ul>
</div>
</div>
<div class="clearfloat"></div>
<div class="floor_bottom bigad"><img src="./images/floor_bottom.jpg"></div>
</div>
<%@ include file="floor.jsp" %>
</body>
<script src="./js/nhshop_index.js"></script>
</html>但是最终效果是网页中c:forEach的片段输出空白,即使什么内容都没有,初学者,想不出哪里出了问题了,求大神打救

解决方案 »

  1.   

    后面我测试了直接在jsp页面中写list,可以用c:forEach遍历出来,但是把代码放回servlet中后就不可以遍历了
      

  2.   

    打印一下shoplist看看是否拿到了数据。或者直接在前端${shops}看看有没有输出,没有输出就是没有数据传过来 
      

  3.   

    把list放到转发的前面。你转发到页面上后面的代码就不会执行了
      

  4.   

    System.out.println("商品信息 " + shoplist);
    request.getRequestDispatcher("index.jsp").forward(request, response);跳转放到商品信息后面试一下