Erro Struts

4 respostas
cu_ringa

alguem poderia me dizer pq, esse erro ta ocorrendo?

exception 

javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:845)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:778)
	org.apache.jsp.register_jsp._jspService(org.apache.jsp.register_jsp:76)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection
	org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:711)
	org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:419)
	org.apache.jsp.register_jsp._jspx_meth_form_form_0(org.apache.jsp.register_jsp:92)
	org.apache.jsp.register_jsp._jspService(org.apache.jsp.register_jsp:69)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

4 Respostas

M

Provavelmente vc esqueceu de criar o actionForm Associado ao seu action,se o seu form tiver sido criadop vê se vc configurou ele no struts-config e se ainda assi vc tiver configurado ele dá uma olhada se no teu jsp tem algum campo que não tenha no teu form ou que esteja escrito errado

cu_ringa

da uma olhada aí no arq jsp, no ActionForm e no struts-config:

<%@ taglib uri="WEB-INF/struts-html.tld" prefix="html" %>

<html:form action="register.do">
	UserName:&lt;html:text property="username" /&gt;<br>
	enter password:&lt;html:password property="password1" /&gt;<br> 
	re-enter password:&lt;html:password property="password2" /&gt;
	&lt;html:submit value="Register" /&gt;
&lt;/html:form&gt;
package app;
import org.apache.struts.action.*;

public class RegisterForm extends ActionForm {
	
	protected String username;
	protected String password1, password2;
	
	public String getUsername(){
		
		return username;
	}
	
	public String getPassword1(){
		
		return password1;
	}
	
	public String getPassword2(){
		
		return 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;		
	}
	
}
<?xml version="1.0" encoding="ISO-8859-1" ?>
&lt;!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
              "http://struts.apache.org/dtds/struts-config_1_0.dtd"&gt;

&lt;struts-config&gt;
	&lt;form-beans&gt;
		&lt;form-bean name="registerForm" type="app.RegisterForm" /&gt;
	&lt;/form-beans&gt;
	&lt;action-mappings&gt;
		&lt;action path="/register" type="app.RegisterAction" name="registerForm"&gt;
			&lt;forward name="success" path="/success.html" /&gt;
			&lt;forward name="failure" path="/failure.html" /&gt;
		&lt;/action&gt;
	&lt;/action-mappings&gt;
&lt;/struts-config&gt;
C

O problema estah na estrutura do seu Action

public class RegisterForm extends ActionForm

{

public ActionForward execute(

ActionMapping mapping,

ActionForm form,

HttpServletRequest request,

HttpServletResponse response) throws Exception {
... // coloque o que a classe deve fazer

return mapping.findForward("success"); 
// como estah mapeado no arquivo struts-config.xml
}

}

ah isto o que estah descrito no seu log…

Mauricio_Linhares

O caminho pro seu action não é:

&lt;html:form action="register.do"&gt;

É:

&lt;html:form action="/register"&gt;

Veja se funciona aí.

Criado 15 de fevereiro de 2005
Ultima resposta 1 de jun. de 2005
Respostas 4
Participantes 4