刚开始学习struts看后面的的报错好像是说明有对应的actiongmapping不过 server-config貌似没有什么问题啊。后面是关联代码。麻烦大家了。谢谢!server-config:<form-beans >
    <form-bean name="queryForm" type="com.DadaQuery.struts.form.QueryForm" />  </form-beans>  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="QueryForm"
      input="/query.jsp"
      name="QueryForm"
      path="/query"
      scope="request"
      type="com.DadaQuery.struts.action.QueryAction" />  </action-mappings>query.jsp:<%@ page language="java" pageEncoding="GB18030"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
 
<html> 
<head>
<title>数据查询</title>
</head>
<body>
<html:form action="/query" method="post">
请输入产品ID : <html:text property="productID"/><html:submit>查询</html:submit><br>
</html:form>
<hr>
<logic:present name="product">
<bean:message key="product.name"/><bean:write name="product"  property="productName"/><br>
<bean:message key="product.price"/><bean:write name="product" property="productPrice"/>
</logic:present>

<logic:notPresent name="product">
<logic:notPresent name="productID">
<bean:message key="product.input"/>
</logic:notPresent>
<logic:present name="productID">
<bean:message key="product.error"/>
</logic:present>
</logic:notPresent>
</body>
</html>
报错信息:
org.apache.jasper.JasperException: An exception occurred processing JSP page /query.jsp at line 118:  <title>数据查询</title>
9:  </head>
10:  <body>
11:  <html:form action="/query" method="post">
12:  请输入产品ID : <html:text property="productID"/><html:submit>查询</html:submit><br>
13:  </html:form>
14:  <hr>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.query_jsp._jspService(query_jsp.java:114)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:798)
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:506)
org.apache.jsp.query_jsp._jspx_meth_html_005fform_005f0(query_jsp.java:133)
org.apache.jsp.query_jsp._jspService(query_jsp.java:93)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.

解决方案 »

  1.   

    这里错了<html:form action="/query" method="post"> 
    去掉/<html:form action="query" method="post"> 
      

  2.   

    <html:form action="query.do" method="post">
    这样就可以了,试试
      

  3.   

    <html:form action="/query" method="post"> 
    这里错误了。把代码中的html:全去了,有可能是你的版本太低。
      

  4.   

    试了啊,问题依旧。重新查看了,web.xml 貌似也没有什么问题!版本低是什么意思?把html全去了不用标签,不久无法达到相应的效果了?
    web.xml<?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>0</param-value>
        </init-param>
        <init-param>
          <param-name>detail</param-name>
          <param-value>0</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
     </servlet>
    <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>
      

  5.   

    <form-beans >
        <form-bean name="queryForm" type="com.DadaQuery.struts.form.QueryForm" />  </form-beans>  <global-exceptions />
      <global-forwards />
      <action-mappings >
        <action
          attribute="QueryForm"
          input="/query.jsp"
          name="QueryForm"
          path="/query"
          scope="request"
          type="com.DadaQuery.struts.action.QueryAction" />  </action-mappings>
    2处红色的地方,大小写不一致。
      

  6.   

    <html:form action="/query" method="post"> 
    必须配置formBean!
      

  7.   

    <html:form action="query.do" method="post"> 
    试试
      

  8.   

    <form-bean name="queryForm">与
    <action name="QueryForm">这两个里面的name的大小写不一致,
    使用struts标签提交表单时,action="query"就可以了,不需要在后面加.do,默认在路径后面会加.do
      

  9.   

    很明显啊
    root cause javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection异常 javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login (/Login是你的action名字) 
    可能原因:action没有再struts-config.xml 中定义,或没有找到匹配的action,例如在JSP文件中使用 处理:如果出现上述异常,请查看struts-config.xml中的定义部分,有时可能是打错了字符或者是某些不符合规则,可以使用struts console工具来检查。 
     
      

  10.   

    异常是说你没有找到相应的迭代集合对象
    你的logic标签里面给的是个集合对象吗
    要是不是那就有错
    修改一些就可以了
      

  11.   

    form-beans > 
        <form-bean name="queryForm" type="com.DadaQuery.struts.form.QueryForm" />   </form-beans>   <global-exceptions /> 
      <global-forwards /> 
      <action-mappings > 
        <action 
          attribute="QueryForm
          input="/query.jsp" 
          name="QueryForm" 
          path="/query" 
          scope="request" 
          type="com.DadaQuery.struts.action.QueryAction" /> 
      </action-mappings> 
    <html:form action="/query" method="post"> formbean大小写要一致,另外页面上要有正确的后缀(这里要根据web.xml配置而定)如果是*.do,那么
    就应该是/query.do
      

  12.   

    补充一点,是action中name,attibute与form-bean中的name大小写要一致