我用的JBuilder2005;出错的过程是这样的
首先跳转到一个action里面,这个action的作用是读数据库的值,然后跳转到一个jsp页面显示出那些值,显示的时候用的是struts的logic和bean标签。经过调试发现,错误是在从action跳转到jsp页面的时候发生的,也就是在return actionmapping.findforward("XXXX");这条语句之后;
请明白的大侠帮忙看看!~谢谢!!~~~
首先跳转到一个action里面,这个action的作用是读数据库的值,然后跳转到一个jsp页面显示出那些值,显示的时候用的是struts的logic和bean标签。经过调试发现,错误是在从action跳转到jsp页面的时候发生的,也就是在return actionmapping.findforward("XXXX");这条语句之后;
请明白的大侠帮忙看看!~谢谢!!~~~
解决方案 »
- 问个小问题,因不会JS造成:JSP组件触发调用JS脚本失败,贴出代码重要部分
- spring+struts的有关问题,请高手指点。
- 关于Servlet 传来的动态图像,比如报表等,怎么在JSP页面可控的输出,如果用标签可以解决吗?
- 请高手进来指教,如何解决HTTP访问中URL带中文参数的问题,真是好麻烦,进来详说,急~~~~~~~~~~~~~~~
- html中支持session吗?
- vc在线正在进行网站压力测试,请大家帮忙登录论坛并保持链接,多谢大家!!!! 支持者有分!!!
- 使用POI可以在linux环境下读写word和excel吗?
- 奇怪的问题!
- 请问APACHE+TOMCAT+J2SDK1.4.2这样的配置是否还需要装MYSQL的JDBC驱动?
- 如何将form提交的值同时传给两个.jsp文件。
- 求教:jsp后台服务进程的开发!
- 江湖救急,问个UNIX,TOMCAT下的jsp的问题,
javax.servlet.ServletException: Cannot create iterator for this collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.typeAdd_jsp._jspService(typeAdd_jsp.java:374)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause javax.servlet.jsp.JspException: Cannot create iterator for this collection
org.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:310)
org.apache.jsp.typeAdd_jsp._jspService(typeAdd_jsp.java:286)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
public class TypeShowAction extends Action { public ActionForward execute(ActionMapping mapping,
ActionForm actionForm,
HttpServletRequest request,
HttpServletResponse response) throws
IOException {
// TypeForm tf = (TypeForm) actionForm;
ConnectionBean cb = new ConnectionBean();
ResultSet rs = null;
ArrayList arr = new ArrayList();
HttpSession session = request.getSession(true);
String state = request.getParameter("state");
if (state=="add" || state.equals("add")) { rs = cb.dbSelect("select * from cy_articleclass order by cy_Order "); try {
while (rs.next()) {
TypeForm tf = new TypeForm();
tf.setTypeId(rs.getInt(1));
String nbsp = "";
for (int i = 0; i < rs.getInt(5); i++) {
nbsp += " ";
} tf.setTypeName(nbsp + rs.getString(2));
tf.setTypeRootID(rs.getInt(3));
tf.setTypePID(rs.getInt(4));
tf.setTypeLevel(rs.getInt(5));
tf.setTypeChild(rs.getInt(6));
tf.setTypeOrder(rs.getInt(7));
tf.setTypePath(rs.getString(8));
tf.setTypeDir(rs.getString(9));
tf.setTypePageNum(rs.getInt(10));
tf.setTypeSummary(rs.getString(11));
tf.setTypeMetaSummary(rs.getString(12)); arr.add(tf); } session.setAttribute("type", arr);
rs.close();
cb.close();
} catch (Exception e) {
e.printStackTrace();
} return mapping.findForward("showParentType");
} else {
if (state=="show" || state.equals("show")) {
rs = cb.dbSelect(
"select * from cy_articleclass order by cy_Order"); try {
while (rs.next()) {
TypeForm tf = new TypeForm();
tf.setTypeId(rs.getInt(1));
String nbsp = "";
for (int i = 0; i < rs.getInt(5); i++) {
nbsp += " ";
}
tf.setTypeName(nbsp + rs.getString(2));
tf.setTypeRootID(rs.getInt(3));
tf.setTypePID(rs.getInt(4));
tf.setTypeLevel(rs.getInt(5));
tf.setTypeChild(rs.getInt(6));
tf.setTypeOrder(rs.getInt(7));
tf.setTypePath(rs.getString(8));
tf.setTypeDir(rs.getString(9));
tf.setTypePageNum(rs.getInt(10));
tf.setTypeSummary(rs.getString(11));
tf.setTypeMetaSummary(rs.getString(12)); arr.add(tf); } session.setAttribute("type", arr);
rs.close();
cb.close();
} catch (Exception e) {
e.printStackTrace();
} }
return mapping.findForward("showAllType");
}
}
}
<TR>
<TD>所属分类:</TD>
<TD><SELECT size=1 name="typePID" onchange="find(this.value);">
<option value="0">无(作为第一类)</option>
<logic:present name="type">
<logic:iterate id="type" name="type">
<logic:present name="type">
<option value="<bean:write name="type" property="typeId"/>">
<bean:write name="type" property="typeName" filter="false"/>
</option>
</logic:present>
</logic:iterate>
</logic:present>
</SELECT></TD>
<TD><SPAN class=red></SPAN><SPAN class=gray></SPAN></TD></TR>
<option value="0">无(作为第一类)</option>
<logic:iterate id="type" name="type">
<option value="<bean:write name="type" property="typeId"/>">
<bean:write name="type" property="typeName" filter="false"/>
</option>
</logic:iterate>
</SELECT>
if (collection.getClass().isArray()) {
try {
// If we're lucky, it is an array of objects
// that we can iterate over with no copying
iterator = Arrays.asList((Object[]) collection).iterator();
} catch (ClassCastException e) {
// Rats -- it is an array of primitives
int length = Array.getLength(collection);
ArrayList c = new ArrayList(length);
for (int i = 0; i < length; i++) {
c.add(Array.get(collection, i));
}
iterator = c.iterator();
}
} else if (collection instanceof Collection) {
iterator = ((Collection) collection).iterator();
} else if (collection instanceof Iterator) {
iterator = (Iterator) collection;
} else if (collection instanceof Map) {
iterator = ((Map) collection).entrySet().iterator();
} else if (collection instanceof Enumeration) {
iterator = new IteratorAdapter((Enumeration) collection);
} else {
JspException e = new JspException(messages.getMessage("iterate.iterator"));
TagUtils.getInstance().saveException(pageContext, e);
throw e;
}messages.getMessage("iterate.iterator")输出的信息就是楼主看见的Cannot create iterator for this collection
美中不足就是到最好也没真正找到错误的根源,只是排除了错误而已。