我用的服务器是resin2.0
我是照着一些资料做了简单的例子,但是运行出错,希望各位帮忙看看是什么问题,谢谢!
这个测试例子中有这几个文件:
webapp/register/WEB-INF/classes/app/RegisterAction.java
webapp/register/WEB-INF/classes/app/RegisterForm.java
webapp/register/register.jsp
webapp/register/failure.html
webapp/register/success.html
配置文件web.xml:
<?xml version="1.0"?>
<!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>
<!-- Action Servlet Configuration -->
<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>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- The Welcome File List -->
<welcome-file-list>
<welcome-file>rigister.jsp</welcome-file>
</welcome-file-list>
<!-- Struts Tag Library Descriptors -->
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>WEB-INF/struts-logic.tld</taglib-location>
</taglib>
</web-app>
配置文件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.dtd">
<struts-config>
<form-beans>
<form-bean name="registerForm"
type="app.RegisterForm">
</form-bean>
</form-beans>
<action-mappings>
<action path="/register"
type="app.RegisterAction"
name="registerForm"
scope="request">
<forward name="success" path="/success.html"/>
<forward name="failure" path="/failure.html"/>
</action>
</action-mappings>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
</struts-config>
register.jsp文件内容:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ 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:html locale="true">
<body>
<html:form action="/register" >
UserName:<html:text property="username"/><br>
enter password:<html:password property="password1"/><br>
re-enter password:<html:password property="password2"/><br>
<html:submit value="Register"/>
</html:form>
</body>
</html:html>
RegisterForm 文件内容:
package app;
import org.apache.struts.action.*;
public class RegisterForm extends ActionForm
{
protected String username;
protected String password1;
protected String password2;
public String getUsername()
{
return this.username;
}
public String getPassword1()
{
return this.password1;
}
public String getPassword2()
{
return this.password2;
}
public void setUsername(String username)
{
this.username = username;
}
public void setPassword1(String password1)
{
this.password1 = password1;
}
public void setPassword2(String password2)
{
this.password2 = password2;
}
}
RegisterAction 文件内容:
package app;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import java.io.*;
public class RegisterAction extends Action
{
public ActionForward perform(ActionMapping mapping,ActionForm form,
HttpServletRequest req,
HttpServletResponse res)
{
RegisterForm rf = (RegisterForm) form;
String username = rf.getUsername();
String password1 = rf.getPassword1();
String password2 = rf.getPassword2();
if (password1.equals(password2))
{
try
{
//UserDirectory.getInstance().setUser(username,password1);
return mapping.findForward("success");
}
catch(Exception e)
{
return mapping.findForward("failure");
}
}
return mapping.findForward("failure");
}
}
启动resin后,在ie中输入:http://localhost:80/register/register.jsp
出错了,错误如下:
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 _register._register__jsp._jspService(/register/register.jsp:9)
at com.caucho.jsp.JavaPage.service(JavaPage.java:74)
at com.caucho.jsp.Page.subservice(Page.java:485)
at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:181)
at com.caucho.server.http.Invocation.service(Invocation.java:291)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:132)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:217)
at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:159)
at com.caucho.server.TcpConnection.run(TcpConnection.java:136)
at java.lang.Thread.run(Thread.java:536)
请这是什么原因引起,怎么解决这个问题,谢谢,