我在循环得到一个文章的信息,但报以下错错误
严重: Servlet.service() for servlet jsp threw exception
javax.servlet.jsp.JspException: Cannot create iterator for this collection
at org.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:265)
at org.apache.jsp.pet_jsp._jspService(pet_jsp.java:379)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
我在网上收了下,有的说是list中的集合类的字段必须都是String类型,我试过后没用,
有的说是数据库没连接,我测试我连接了的,数据输出无误,
以下是我的代码:请各位高手看看,指出我的错误。并请告诉我是什么原因,在什么情况下会出现这种错误,如何避免。谢谢
----jsp----
<logic:present name="pet">
<logic:notEmpty name="pet">
<logic:iterate id="pet" name="pet" type="com.website.struts.entity.Pet">
<tr>
<td>
<bean:write property="title" name="pet"/> <%//内容锚点 %>
</td>
</tr>
<tr>
<td >
<bean:write property="content" name="pet"/>
</td>
</tr>
<tr>
<td>
<img border="0" src="pet/rline.gif"><img border="0" src="pet/top.gif">
</td>
</tr>
</logic:iterate>
</logic:notEmpty>
</logic:present>
---action------
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
int type = Integer.parseInt(request.getParameter("type"));
DateDAO dataDAO = new DateDAO(getDataSource(request,"mysql"));
ArrayList list = (ArrayList)dataDAO.showPet(type);
Pet pet = (Pet)list.get(0);
for(int i=0;i<list.size();i++){
System.out.println(pet.getTitle());
System.out.println(pet.getContent());
}
System.out.println("list.size:"+list.size());
request.setAttribute("pettype", String.valueOf(type));
request.setAttribute("pet", list);
//request.setAttribute("size", list.size());
return mapping.findForward("suc");
}----DAO-----
public Collection showPet(int type){
String sql = "select title,content from petcenter where type = ?";
int i = 0;
try {
if(conn.isClosed()){
throw new IllegalStateException("ERROR.TIME CONNECTION ISCLOSED");
}
ps = conn.prepareStatement(sql);
ps.setInt(1, type);
rs = ps.executeQuery();
while(rs.next() && i<16){
Pet pet = new Pet();
pet.setTitle(rs.getString(1));
pet.setContent(rs.getString(2));
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
list.add(pet);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(conn != null){
try {
ps.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return list;
严重: Servlet.service() for servlet jsp threw exception
javax.servlet.jsp.JspException: Cannot create iterator for this collection
at org.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:265)
at org.apache.jsp.pet_jsp._jspService(pet_jsp.java:379)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
我在网上收了下,有的说是list中的集合类的字段必须都是String类型,我试过后没用,
有的说是数据库没连接,我测试我连接了的,数据输出无误,
以下是我的代码:请各位高手看看,指出我的错误。并请告诉我是什么原因,在什么情况下会出现这种错误,如何避免。谢谢
----jsp----
<logic:present name="pet">
<logic:notEmpty name="pet">
<logic:iterate id="pet" name="pet" type="com.website.struts.entity.Pet">
<tr>
<td>
<bean:write property="title" name="pet"/> <%//内容锚点 %>
</td>
</tr>
<tr>
<td >
<bean:write property="content" name="pet"/>
</td>
</tr>
<tr>
<td>
<img border="0" src="pet/rline.gif"><img border="0" src="pet/top.gif">
</td>
</tr>
</logic:iterate>
</logic:notEmpty>
</logic:present>
---action------
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
int type = Integer.parseInt(request.getParameter("type"));
DateDAO dataDAO = new DateDAO(getDataSource(request,"mysql"));
ArrayList list = (ArrayList)dataDAO.showPet(type);
Pet pet = (Pet)list.get(0);
for(int i=0;i<list.size();i++){
System.out.println(pet.getTitle());
System.out.println(pet.getContent());
}
System.out.println("list.size:"+list.size());
request.setAttribute("pettype", String.valueOf(type));
request.setAttribute("pet", list);
//request.setAttribute("size", list.size());
return mapping.findForward("suc");
}----DAO-----
public Collection showPet(int type){
String sql = "select title,content from petcenter where type = ?";
int i = 0;
try {
if(conn.isClosed()){
throw new IllegalStateException("ERROR.TIME CONNECTION ISCLOSED");
}
ps = conn.prepareStatement(sql);
ps.setInt(1, type);
rs = ps.executeQuery();
while(rs.next() && i<16){
Pet pet = new Pet();
pet.setTitle(rs.getString(1));
pet.setContent(rs.getString(2));
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
list.add(pet);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(conn != null){
try {
ps.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return list;
解决方案 »
- 征求SWFUpload 批量上传的例子
- struts2的action有点长,有什么办法只使用类名否?
- java web工程如何读取外围设备提交的数据
- ordinal parameter mismatch异常(高分)
- FCKeditor,FCKeditor,FCKeditor,大家帮帮忙啊,我把网站上传了,,但服务商不是使用的是tomcat虚拟目录的概念,是使用。。。。。
- 正则图片
- 一个做投票的小项目
- 配置连接池总结!有过经验的朋友都请进............。platform:Win2K Server Tomcat5 IIS Oracle9i mysql
- 如何用jsp写一个购物车,请大家给点思路?
- Servlet 和 applet的通信问题(help me!!!!!!!)
- 在linux+websphere下验证码图片显示不了如何解决呢?
- 急!!javax.servlet.jsp.JspException: Cannot create iterator for this collection
我是Java刚毕业,来看看、学学;希望这个春天不白过
System.out.println(pet.getTitle());
System.out.println(pet.getContent());
}
System.out.println("list.size:"+list.size()); 的值还有你的
list.add(pet); 的定义在那里?
<logic:present name="pet">
<logic:notEmpty name="pet">
<logic:iterate id="pet" name="pet" type="com.website.struts.entity.Pet"> //换一个id名称就OK,不要都用pet
<tr>
<td>
<bean:write property="title" name="pet"/> <%//内容锚点 %>
</td>
</tr>
<tr>
<td >
<bean:write property="content" name="pet"/>
</td>
</tr>
<tr>
<td>
<img border="0" src="pet/rline.gif"> <img border="0" src="pet/top.gif">
</td>
</tr>
</logic:iterate>
</logic:notEmpty>
</logic:present>
<logic:notEmpty name="pet">
<logic:iterate id="pp" name="pet" type="com.website.struts.entity.Pet">
<tr>
<td>
<bean:write property="title" name="pp"/> <%//内容锚点 %>
</td>
</tr>
<tr>
<td >
<bean:write property="content" name="pp"/>
</td>
</tr>
<tr>
<td>
<img border="0" src="pet/rline.gif"> <img border="0" src="pet/top.gif">
</td>
</tr>
</logic:iterate>
</logic:notEmpty>
</logic:present>
还有数组没错,有记录,在jsp页面能打印出来