<c:forEach items="${ck}" var="re">
  <tr>
    <td><div align="center">${re.cknum}&nbsp;</div></td>
    <td><div align="center">${re.ckname}&nbsp;</div></td>
    <td><div align="center">修改</div></td>
<td><div align="center">删除</div></td>
<td><div align="center">详细信息</div></td>
  </tr>
  </c:forEach>
这是我的ck.jsp部分代码,下面是servlet部分代码request.setCharacterEncoding("gb2312");
String querystr = request.getParameter("querystr");
String type = request.getParameter("type");

ArrayList a = new CKXXB().queryCK(type, querystr);
request.setAttribute("ck", a);
request.getRequestDispatcher("/SystemSetting/ck.jsp").forward(request, response);
下面是实体类的代码
package cailiao.entity;import cailiao.DB.ExecuteDB;
import java.util.*;
import java.sql.*;public class CKXXB extends ExecuteDB{

private int id;
private String cknum;
private String ckname;
private String ckposition;
private String ckadmin;
private String cktel;
private String ckmemo;

public String getCkadmin() {
return ckadmin;
}
public void setCkadmin(String ckadmin) {
this.ckadmin = ckadmin;
}
public String getCkmemo() {
return ckmemo;
}
public void setCkmemo(String ckmemo) {
this.ckmemo = ckmemo;
}
public String getCkname() {
return ckname;
}
public void setCkname(String ckname) {
this.ckname = ckname;
}
public String getCknum() {
return cknum;
}

public void setCknum(String cknum) {
this.cknum = cknum;
}
public String getCkposition() {
return ckposition;
}
public void setCkposition(String ckposition) {
this.ckposition = ckposition;
}
public String getCktel() {
return cktel;
}
public void setCktel(String cktel) {
this.cktel = cktel;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public ArrayList queryCK(String type,String querystr){
ArrayList a = new ArrayList();
String sql;
if(type.equals("num")){
sql = "select * from CKXXB where CKNum ='" + querystr + "'";

}else{
sql = "select * from CKXXB where CKName='" + querystr + "'";
}
ResultSet rs = super.exeQuery(sql);
try {
while(rs.next()){
CKXXB c = new CKXXB();
c.setCkadmin(rs.getString("CKAdmin"));
c.setCkmemo(rs.getString("CKMemo"));
c.setCkname(rs.getString("CKName"));
c.setCknum(rs.getString("CKNum"));
c.setCkposition(rs.getString("CKPosition"));
c.setCktel(rs.getString("CKTel"));
c.setId(rs.getInt("Id"));

a.add(c);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return a;
}}
可以确定的是a 里面是有值的,可是就是在jsp里面遍历不出来,
谢谢各位了,在线等!

解决方案 »

  1.   

    ${re.cknum}和${re.ckname}修改为<c:out value="${re.cknum}"/><c:out value="${re.ckname}"/>
      

  2.   

    你试试<c:catch>捕获异常,因为标签会屏蔽某些异常发生
      

  3.   

    如果确定是有值的,却没显示出来,那么在你的JSP头部加上这句定义:
    <%@ page isELIgnored ="false"%> 
      

  4.   

    可能你请求的路径有问题吧,
    或者这样写:
    <c:forEach items="${requestScope.ck}" var="re"> 
       <tr> 
         <td> <div align="center">${re.cknum}</div> </td> 
         <td> <div align="center">${re.ckname}</div> </td> 
       </tr> 
       </c:forEach>
    试试看,行不行?
      

  5.   

    <c:forEach items="${queryresult}" var="re">
      <tr>
        <td><div align="center">${re.usernum}&nbsp;</div></td>
        <td><div align="center">${re.username}&nbsp;</div></td>
        <td><div align="center">${re.role}&nbsp;</div></td>
    <td><div align="center"><a href="../servlet/DeleteUser?usernum=${re.usernum}">删除</a></div></td>
      </tr>
      </c:forEach>
    这是我别一个页的代码,这个就能遍历出来,真是服了
      

  6.   

    现在我也怀疑可能是a 中没有值,昨天我是有MyEclipse调试的,当时确实是从数据库中取出数据并付给a了,
    可能是从servlet到jsp页之间的问题吧,
    今天我在jsp页上写了个测试,可是不对;还请大家帮忙啊
    <%

    ArrayList a = (ArrayList)request.getAttribute("ck");
    CKXXB ckxxb = (CKXXB)a.get(0);
    String cknum = ckxxb.getCknum(); 

    %>
    下面是错误信息!
    org.apache.jasper.JasperException: Exception in JSP: /SystemSetting/ck.jsp:1411: <%
    12:  ArrayList a =(ArrayList)session.getAttribute("ck");
    13: 
    14:  CKXXB ckxxb = (CKXXB)a.get(0);
    15:  String cknum = ckxxb.getCknum(); 
    16: 
    17: %>
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:467)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause java.lang.NullPointerException
    org.apache.jsp.SystemSetting.ck_jsp._jspService(ck_jsp.java:58)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
      

  7.   

     晕死哦,这是空指针异常.你测试一下哪一个是null啊System.out.println(a);
    System.out.println(a.size());测试一下a是不是null啊
      

  8.   

    java.lang.NullPointerException
    空指针异常。根据这,你的a估计就是NULL,根本没取得值!
      

  9.   

    看来确实是a中,也就是ck中没有值,但是为什么没有啊,明明从数据库中取出来了啊!
      

  10.   

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException { request.setCharacterEncoding("gb2312");
    String querystr = request.getParameter("querystr");
    String type = request.getParameter("type");

    ArrayList a = new CKXXB().queryCK(type, querystr);
    System.out.println("a中的数据个数" + a.size());
    request.setAttribute("ck", a);

    request.getRequestDispatcher("/SystemSetting/ck.jsp").forward(request, response);
    }
    哭了,a中有数据啊,
     LogAbandoned: true
       RemoveAbandoned: true
       RemoveAbandonedTimeout: 60
    a中的数据个数1
    可是为什么不能传到jsp页中呢?
      

  11.   

    你看看request.setAttribute("ck",);这样语句的地方,应该是在Servlet中
      

  12.   

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException { request.setCharacterEncoding("gb2312");
    String querystr = request.getParameter("querystr");
    String type = request.getParameter("type");

    ArrayList a = new CKXXB().queryCK(type, querystr);
    System.out.println("a中的数据个数" + a.size());

    CKXXB ckxxb = (CKXXB)a.get(0);
    String i = ckxxb.getCknum();
    System.out.println(i);
    request.setAttribute("ck", a);

    request.getRequestDispatcher("/SystemSetting/ck.jsp").forward(request, response);
    }AbandonedObjectPool is used (org.apache.commons.dbcp.AbandonedObjectPool@14c92a7)
       LogAbandoned: true
       RemoveAbandoned: true
       RemoveAbandonedTimeout: 60
    a中的数据个数1
    0001
    楼上,我的这句request.setAttribute("ck", a);应该没什么问题啊,
    现在就是在jsp页中好像接收不到a的值一样,
      

  13.   

    这是我ck.jsp的代码!
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head><body>
    <form id="form1" name="form1" method="post" action="../servlet/QueryCK">
      <table width="800" border="0">
        <tr>
          <td width="15%"><div align="right">仓库查询:</div></td>
          <td width="20%">按
            <select name="type" id="type">
              <option value="name" selected="selected">仓库名称</option>
              <option value="num">仓库编号</option>
            </select>      </td>
          <td><label>请输入查询字段:
              <input name="querystr" type="text" id="querystr" size="20" maxlength="20" />
          </label></td>
          <td width="20%"><input type="submit" name="Submit" value="查询" /></td>
        </tr>
        <tr>
          <td colspan="4"><div align="center">
      <table width="75%" border="1" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <th width="20%">仓库编号</th>
        <th width="20%">仓库名称</th>
        <th width="20%">修改</th>
    <th width="20%">删除</th>
    <th width="20%"></th>
      </tr>
      <c:forEach items="${ck}" var="fe">
      <tr>
        <td><div align="center">${fe.usernum}&nbsp;&nbsp;</div></td>
        <td><div align="center">${fe.username}&nbsp;&nbsp;</div></td>
        <td><div align="center">修改</div></td>
    <td><div align="center">删除</div></td>
    <td><div align="center">详细信息</div></td>
      </tr>
      </c:forEach>
    </table>
      </div></td>
        </tr>
        <tr>
          <td><div align="right">新增仓库:</div></td>
          <td colspan="3"><a href="add_ck.jsp">添加</a></td>
        </tr>
      </table>
    </form>
    </body>
    </html>
      

  14.   

    你在jsp中是不是用Arraylist去接收的啊