为什么在JSP中的<c:forEach>里面的内容不能显示?

这个是servlet:request.setCharacterEncoding("GB2312");Stringid=request.getParameter("cid"... 这个是servlet:
request.setCharacterEncoding("GB2312");
String id = request.getParameter("cid");

int categoryId = 1;
if(id!=null){
categoryId = Integer.parseInt(id);
}

//获取所有的类别
categoryService cs = new categoryService();
ArrayList<category> clist = cs.getAllCategorys();
//获取该类别的所有商品
productService ps = new productService();
ArrayList<product> plist = ps.getProductsByCategory(categoryId);

request.setAttribute("cl", clist);
request.setAttribute("pl", plist);
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.forward(request,response);
这个是jsp:
<c:forEach items="${cl}" var="c" >
<li><a href="productListServlet?cid=${c.categoryID}">${c.categoryName}</a></li>
</c:forEach>
下面是两个方法:
public ArrayList<category> getAllCategorys(){

Connection conn=DbConn.getConnction();

try {

String sql="select * from category";
//建立语句对象
Statement ps =conn.createStatement();
//执行查询语句
ResultSet rs = ps.executeQuery(sql);

category c;

ArrayList<category> clist = new ArrayList();

while(rs.next())
{
c =new category();
c.setCategoryID(rs.getInt("categoryID"));
c.setCategoryName(rs.getString("categoryName"));
c.setCategoryDes(rs.getString("categoryDes"));

clist.add(c);

}

rs.close();
ps.close();
if(conn != null) {
conn.close();
conn = null;
}

return clist;

} catch (SQLException e) {
e.printStackTrace();
}
finally{

}

return null;

}

public ArrayList<product> getProductsByCategory(int categoryId){

Connection conn=DbConn.getConnction();

try {

String sql="select * from product where categoryId = ?";
//建立语句对象
PreparedStatement ps =conn.prepareStatement(sql);

ps.setInt(1,categoryId);

//执行查询语句
ResultSet rs = ps.executeQuery();

product p;

ArrayList<product> plist = new ArrayList();

while(rs.next())
{
p =new product();

p.setProductID(rs.getInt("productID"));
p.setProductName(rs.getString("productName"));
p.setProductWriter(rs.getString("productWriter"));
p.setProductPrice(rs.getString("productPrice"));
p.setProductCent(rs.getString("productCent"));
p.setProductImg(rs.getString("productImg"));
p.setCategoryID(rs.getString("categoryID"));

plist.add(p);

}

rs.close();
ps.close();
if(conn != null) {
conn.close();
conn = null;
}

return plist;

} catch (SQLException e) {
e.printStackTrace();
}
finally{

}

return null;

}
展开
 我来答
zrp112358
2011-04-16 · TA获得超过333个赞
知道小有建树答主
回答量:198
采纳率:100%
帮助的人:132万
展开全部
jsp中引入c标签了吗?

在action中用request.set 返回一个,然后再在jsp页面中用request.get 试试看。如果这样可以就所以你c标签引入出现了问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浩瀚小青年
推荐于2016-11-02 · 超过17用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:45.9万
展开全部
1,确定先进入Servlet了,
2,确定传入了cid 不为空
3,确定查询时Tomcat没有报错。如果报错将是return null。从代码来看流程 是没有错
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式