struts问题!

secball 2003-11-06 10:45:39
初学struts,结果运行时出现以下的错误!:

javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans
collection
at org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:798)
at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:506)
at _t__jsp._jspService(/test/t.jsp:1)
at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
at com.caucho.jsp.Page.subservice(Page.java:497)
at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
at com.caucho.server.http.Invocation.service(Invocation.java:315)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:163)
at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
at java.lang.Thread.run(Thread.java:536)




jsp文件为(index.jsp):

<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html>
<head>
<title>My Struts Application</title>
</head>
<body>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
</tr>
<tr bgcolor="#36566E">
<td height="68" width="48%">
<div align="left"><img src="f.gif" width="120" height="74">
</div>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
<html:form action="Lookup" name="lookupForm" type="mystruts.LookupForm" >
<table width="45%" border="0">
<tr>
<td>Symbol:</td>
<td><html:text property="sybmol" /></td>
</tr>
<tr>
<td colspan="2" align="center"><html:submit />
</td>
</tr>
</table>
</html:form>
</body>
</html>

配置文件struts-config.xml为:

<?xml version="1.0" encoding="ISO_8859_1"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dta">
<struts-config>
<message-resources parameter="mystruts.ApplicationResources"/>
</struts-config>
<form-bean name="lookupForm" type=mystruts.LookupForm"/>
<action path="/Lookup" type="struts.LookupAction" name="lookupForm" input="/index.jsp">
<forward name="success" path="/quote.jsp"/>
<forward name="failure" path="/index.jsp"/>
</action>

配置文件web.xml为:

<?xml version="1.0" encoding="ISO_8859_1"?>
<!DOCTYPE web-app PUBLIC "_//Sun Microsystems,Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
</web-app>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/sturts-html.tld</taglib-location>
</taglib>
<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>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

JAVA文件1:

package mystruts;
import mystruts.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
public class LookupAction extends Action{
protected Double getQuote(String symbol)
{
if(symbol.equalsIgnoreCase("SUNW"))
{
return new Double(25.00);
}
return null;
}
public ActionForward excute(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException
{
Double price=null;
String target=new String("success");
if(form!=null)
{
LookupForm lookupForm=(LookupForm)form;
String symbol=lookupForm.getSymbol();
price=getQuote(symbol);
}
if(price==null)
{
target=new String("Failure");
}
else
{
request.setAttribute("PRICE",price);
}
return (mapping.findForward(target));
}
}

JAVA文件2:

package mystruts;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

public class LookupForm extends ActionForm
{
private String symbol=null;
public String getSymbol()
{
return (symbol);
}
public void setSymbol(String s)
{
this.symbol=s;
}
public void reset(ActionMapping mapping,HttpServletRequest request)
{
this.symbol=null;
}

}

以上的JAVA源文件在编译时没有错误。*.tld、*.jar、*.dtd文件都按要求拷到了相关目录。服务器是resin2.18、OS为win2000
...全文
309 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yupingping 2003-11-13
  • 打赏
  • 举报
回复
学习一下
Leemaasn 2003-11-13
  • 打赏
  • 举报
回复
可惜。来晚了一步。。。
祝你学习愉快。。。
secball 2003-11-13
  • 打赏
  • 举报
回复
放了几天后不理后,这个问题终于在昨晚搞定!原因是struts-config的设置和ActionForm的问题。
secball 2003-11-07
  • 打赏
  • 举报
回复
改了,还是这个错误!
willyzeng 2003-11-07
  • 打赏
  • 举报
回复
public class LookupAction extends Action{
....
public ActionForward excute(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException
....

excute改为execute试试
secball 2003-11-07
  • 打赏
  • 举报
回复
谢谢各位的热心帮助。可是问题学是那错误信息。哪位朋友有简单、明了的Struts的例子,发一份给我参考参考吧!qinsq@lzezx.com
zcjl 2003-11-07
  • 打赏
  • 举报
回复
所做修改如下:

//struts-config.xml:

<?xml version="1.0" encoding="ISO_8859_1"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dta">

<struts-config>

<form-beans>
<form-bean name="lookupForm" type=mystruts.LookupForm"/>
</form-beans>

<action-mappings>
<action path="/Lookup" type="struts.LookupAction" name="lookupForm" input="/index.jsp">
<forward name="success" path="/quote.jsp"/>
<forward name="failure" path="/index.jsp"/>
</action>
</action-mappings>

<message-resources parameter="mystruts.ApplicationResources"/>
</struts-config>


//web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">

<web-app>

<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>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>

</web-app>
treeClimber 2003-11-07
  • 打赏
  • 举报
回复
能不用struts的taglib么?用了它的话速度影响非常大,而且你根本无法明白它的源码。
secball 2003-11-07
  • 打赏
  • 举报
回复
按上面朋友的试了一下,结果还是这个错误!
软猫克鲁 2003-11-07
  • 打赏
  • 举报
回复
试试楼上说的还不行么?
skyjiang 2003-11-06
  • 打赏
  • 举报
回复
<html:form action="Lookup" name="lookupForm" type="mystruts.LookupForm" >
改成<html:form action="/Lookup">,应该就好了

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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