新人求助,在线等。谢谢!

richardwolflord 2009-05-31 10:18:43
刚开始学习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 11

8: <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.

...全文
113 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
robyjeffding 2009-06-01
  • 打赏
  • 举报
回复
<form-bean name="queryForm">与
<action name="QueryForm">这两个里面的name的大小写不一致,
使用struts标签提交表单时,action="query"就可以了,不需要在后面加.do,默认在路径后面会加.do
weiluo12 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qiheia 的回复:]
<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" />

</a…
[/Quote]
<html:form action="query.do" method="post">
试试
wine1 2009-06-01
  • 打赏
  • 举报
回复
对,大小写一致应该就可以了
少龙123 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 edisonwin 的回复:]
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" />
</acti…
[/Quote]
补充一点,是action中name,attibute与form-bean中的name大小写要一致
少龙123 2009-06-01
  • 打赏
  • 举报
回复
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
jumpheightway 2009-06-01
  • 打赏
  • 举报
回复
异常是说你没有找到相应的迭代集合对象
你的logic标签里面给的是个集合对象吗
要是不是那就有错
修改一些就可以了
wkdgofyd0312 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qiheia 的回复:]
<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" />

</a…
[/Quote]


大小写不一致
  • 打赏
  • 举报
回复
找个 跑通的 事例 看看
  • 打赏
  • 举报
回复
[Quote=引用楼主 richardwolflord 的帖子:]
刚开始学习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"

[/Quote]
很明显啊
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工具来检查。
jinchun1234 2009-06-01
  • 打赏
  • 举报
回复
大小写必须一致
zhaodalong 2009-05-31
  • 打赏
  • 举报
回复
<html:form action="/query" method="post">
必须配置formBean!
qiheia 2009-05-31
  • 打赏
  • 举报
回复
<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处红色的地方,大小写不一致。。。。
sachmx1234 2009-05-31
  • 打赏
  • 举报
回复
richardwolflord 2009-05-31
  • 打赏
  • 举报
回复
试了啊,问题依旧。重新查看了,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>
侯坤 2009-05-31
  • 打赏
  • 举报
回复
<html:form action="/query" method="post">
这里错误了。把代码中的html:全去了,有可能是你的版本太低。
qiheia 2009-05-31
  • 打赏
  • 举报
回复


<html:form action="query.do" method="post">
这样就可以了,试试。。。
richardwolflord 2009-05-31
  • 打赏
  • 举报
回复
不是楼上说的错误。。。。。
richardwolflord 2009-05-31
  • 打赏
  • 举报
回复
不是楼上说的问题。。。。。--!
qiheia 2009-05-31
  • 打赏
  • 举报
回复
这里错了<html:form action="/query" method="post">
去掉/<html:form action="query" method="post">

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧