Bom dia a todos…
sou novo no struts, e to com problemas muitos dificeis(pra mim) de resolver…
to fazendo um projeto de cadastro de Pessoa…
acontece que quando eu rodo ele, ele nem abre o jsp principanl, e da esse erro aqui…
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.cadastro_jsp._jspService(cadastro_jsp.java:75)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
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.cadastro_jsp._jspx_meth_form_form_0(cadastro_jsp.java:91)
org.apache.jsp.cadastro_jsp._jspService(cadastro_jsp.java:66)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.30 logs.
Apache Tomcat/5.0.30
Obrigado
Parece problemas com taglib do Struts, sua aplicação tem o diretorio tld dentro de WEB-INF com as taglibs do Struts?
dentro do WEB-INF tem :
pasta classes
pasta lib
arquivos:
.cvsignore
ibm-web-bnd.xmi
ibm-web-ext-xmi
struts-bean.tld
struts-config.xml
struts-html.tld
struts-logic.tld
struts-nested.tld
struts-template.tld
struts-tiles.tld
web.xml
cadastro.jsp
falha.html
sucesso.html
.classoath
.project
.server
.websettings
.website-config
diagram.gph
é isso ai só…
por favor, nao acho o problema, preciso de ajuda!
Esses arquivos:
struts-bean.tld
struts-html.tld
struts-logic.tld
struts-nested.tld
struts-template.tld
struts-tiles.tld
precisam ficar dentro de uma pasta tld, tenta fazer isso
nada, continua com o mesmo erro!
obrigado
De uma olhada no seu struts-config.xml, confira se os nomes estão corretos post ele aqui.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Origens de Dados -->
<data-sources>
</data-sources>
<!-- Beans de Formulário -->
<form-beans>
<form-bean name="PessoaForm" type="app.PessoaForm"/>
</form-beans>
<!-- Exceções Globais -->
<global-exceptions>
</global-exceptions>
<!-- Avanços Globais -->
<global-forwards>
</global-forwards>
<!-- Mapeamentos de Ações -->
<action-mappings>
<action path="/Pessoa"
type="app.PessoaAction"
name="PessoaAction">
<forward name="success" path="/sucesso.html"/>
<forward name="failure" path="/falha.html"/>
</action>
</action-mappings>
<!-- Recursos da Mensagem -->
<message-resources parameter="br.com.pessoa1.resources.ApplicationResources"/>
é esse ai o struts-config, não sou um bom conhecedor de struts, mas acho q ele ta correto…
Post suas classes e o JSP aqui, utilize a tag Code seu código fica mais facil de entender.
PessoaAction.java
[code]package app;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
-
@author andre.fernandes
-
-
Para alterar o gabarito para este comentário do tipo gerado vá para
-
Janela>Preferências>Java>Geração de Códigos>Código e Comentários
*/
public class PessoaAction extends Action {
public ActionForward perform (ActionMapping mapping,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res)throws IOException, ServletException{
PessoaForm pf = (PessoaForm) form;
String nome = pf.getNome();
String endereco = pf.getEndereco();
String complemento = pf.getComplemento();
String cep = pf.getCep();
String rg = pf.getRg();
String telefone = pf.getTelefone();
String email = pf.getEmail();
String observacoes = pf.getObservacoes();
if(nome != null){
try{
return mapping.findForward(“success”);
}catch(Exception e){
return mapping.findForward(“failure”);
}
}
return mapping.findForward(“failure”);
}
}[/code]
PessoaForm.java
[code]package app;
import org.apache.struts.action.ActionForm;
/*
- Criado em 02/05/2006
-
- Para alterar o gabarito para este arquivo gerado vá para
- Janela>Preferências>Java>Geração de Códigos>Código e Comentários
*/
/**
-
@author andre.fernandes
-
-
Para alterar o gabarito para este comentário do tipo gerado vá para
-
Janela>Preferências>Java>Geração de Códigos>Código e Comentários
/
public class PessoaForm extends ActionForm{
protected String nome;
protected String endereco;
protected String complemento;
protected String cep;
protected String rg;
protected String telefone;
protected String email;
protected String observacoes;
/*
-
@return
*/
public String getCep() {
return this.cep;
}
/**
-
@return
*/
public String getComplemento() {
return this.complemento;
}
/**
-
@return
*/
public String getEmail() {
return this.email;
}
/**
-
@return
*/
public String getEndereco() {
return this.endereco;
}
/**
-
@return
*/
public String getNome() {
return this.nome;
}
/**
-
@return
*/
public String getObservacoes() {
return this.observacoes;
}
/**
-
@return
*/
public String getRg() {
return this.rg;
}
/**
-
@return
*/
public String getTelefone() {
return this.telefone;
}
/**
-
@param string
*/
public void setCep(String cep) {
this.cep = cep;
}
/**
-
@param string
*/
public void setComplemento(String complemento) {
this.complemento = complemento;
}
/**
-
@param string
*/
public void setEmail(String email) {
this.email = email;
}
/**
-
@param string
*/
public void setEndereco(String endereco) {
this.endereco = endereco;
}
/**
-
@param string
*/
public void setNome(String nome) {
this.nome = nome;
}
/**
-
@param string
*/
public void setObservacoes(String observacoes) {
this.observacoes = observacoes;
}
/**
-
@param string
*/
public void setRg(String rg) {
this.rg = rg;
}
/**
-
@param string
*/
public void setTelefone(String telefone) {
this.telefone = telefone;
}
}[/code]
cadastro.jsp
<%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="form" %>
<form:form action="Pessoa.do">
Efetue aqui o seu cadastro:
<table>
<tr>
<td>Nome:</td>
<td><form:text property="nome" /></td>
</tr>
<tr>
<td>Endereço:</td>
<td><form:text property="endereco"/></td>
</tr>
<tr>
<td>Complemento:</td>
<td><form:text property="complemento"/></td>
</tr>
<tr>
<td>Cep:</td>
<td><form:text property="cep"/></td>
</tr>
<tr>
<td>RG:</td>
<td><form:text property="rg"/></td>
</tr>
<tr>
<td>Telefone:</td>
<td><form:text property="telefone"/></td>
</tr>
<tr>
<td>E-Mail:</td>
<td><form:text property="email"/></td>
</tr>
<tr>
<td>Observações:</td>
<td><form:text property="observacoes"/></td>
</tr>
<tr>
<td><form:submit value="Cadastrar"/></td>
</form:form>
</tr>[/code]
falaha.html
[code]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META name="GENERATOR" content="IBM WebSphere Studio">
<META http-equiv="Content-Style-Type" content="text/css">
<LINK href="theme/Master.css" rel="stylesheet" type="text/css">
<TITLE>Falha</TITLE>
</HEAD>
<BODY>
Falhou
<P><a href="cadastro.jsp">tentar de novo?</a></P>
</BODY>
</HTML>
sucesso.html
[code]
Sucesso
Registrado com sucesso
cadastrar outro?
[/code]
cadastro.jsp, falha.html e sucesso.html esta na pasta WebContent
os dois .java estao em Recursos Java, pacote “app”
Acho que é isso:
troque seus campos text
<form:text property="endereco"/>
por
<html:text property="endereco"/>
Olhe esse exemplo:
<%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/tld/struts-bean.tld" prefix="bean"%>
<html:html>
<html:form action="/login" focus="usuario">
<table align="center">
<tr>
<td colspan="2" align="center">Sistema de Acesso</td>
</tr>
<tr>
<td><bean:message key="pergunta.usuario"/></td>
<td><html:text property="usuario"/></td
</tr>
<tr>
<td><bean:message key="pergunta.senha"/></td>
<td><html:password property="senha"/></td>
</tr>
<td>
<html:submit>
<bean:message key="pergunta.enviar"/>
</html:submit>
</td>
<td>
<html:reset>
<bean:message key="pergunta.limpar"/>
</html:reset>
</td>
</tr>
</table>
</html:form>
</html:html>
alterando ai, ele diz que a marcação é desconhecida…
engraçado, é que em outro exemplo ele faz o seguinte:
<@ taglib uri="WEB-INF/struts-form.tld" prefiz="form" %>
mas no meu wsad não existe nenhum struts-form.tld… achei isso muito estranho!
Essas taglibs do struts são muito ruins, teste com html normal então, caso precise mescle com jstl.
<form>
<input type="text">
...
</form>
<action path="/Pessoa"
type=“app.PessoaAction”
name=“PessoaAction”>
Faz assim:
<action path="/Pessoa"
type=“app.PessoaAction”
name=“PessoaForm”>
Alberto
Coloque aí o seu web.xml.
[quote=Pedrosa]Esses arquivos:
struts-bean.tld
struts-html.tld
struts-logic.tld
struts-nested.tld
struts-template.tld
struts-tiles.tld
precisam ficar dentro de uma pasta tld, tenta fazer isso[/quote]
Não necessáriamente… :lol: :lol: :lol: :lol: :lol:
Se vc quiser que o cara coloque o projeto inteiro aqui, manda um e-mail e pede o projeto dele…mas postar código por código aqui fica mto porco… :lol: :lol: :lol: :lol: :lol: