Problemas com Action no struts

12 respostas
H

Boa noite galera,

estouu tentando fazer uma action de login no struts e está gerando o seguinte erro.

HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Form bean not specified on mapping for action: /loginorg.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

javax.servlet.ServletException: javax.servlet.jsp.JspException: Form bean not specified on mapping for action: “/login”

org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)

org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)

org.apache.jsp.index_jsp._jspService(index_jsp.java:97)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

javax.servlet.jsp.JspException: Form bean not specified on mapping for action: “/login”

org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:857)

org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:467)

org.apache.jsp.index_jsp._jspx_meth_html_005fform_005f0(index_jsp.java:114)

org.apache.jsp.index_jsp._jspService(index_jsp.java:86)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.

12 Respostas

H
esse eh meu bean
package br.com.seguradora.form;

public class loginForm {

	private String usuario;
	private String senha;

	public String getUsuario() {
		return usuario;
	}

	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

}
esse é meu action
package br.com.seguradora.action;

import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class loginAction extends Action {
	
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm action,
			ServletRequest request, ServletResponse response) throws Exception {

		return mapping.findForward("valid");
	}
	
}
essa aqui eh meu strut-config.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
        "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>

  <!-- ========== Form Bean Definitions ============ -->
  <form-beans>
  	<form-bean name="/login" type="br.com.seguradora.form.loginForm" />
  </form-beans>


  <!-- ========== Global Forward Definitions ========= -->
  <global-forwards>
  </global-forwards>
  
  <!-- ========== Action Mapping Definitions ======== -->
  <action-mappings>
    <action	path="/login" type="br.com.seguradora.action.loginAction" >
	    <forward name="valid" path="/index.jsp" />
	</action>
  </action-mappings>

</struts-config
aqui está meu web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
  <display-name>controleorcamento</display-name>
  
    <!-- 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>
        <load-on-startup>1</load-on-startup>
    </servlet>


    <!-- Action Servlet Mapping -->
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
  
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

Estou usando uma action de teste só por isso ele sempre vai retornar valid.

abs

H

como isso ??? eu achei que tinha mapeado

H

não consegui ainda será que alguem pode me ajudar ???

H

cara valew mesmo ajudouu... eu nao tava sabendo que tinha que declar name-="form-bean" na action.

soh que agora estou com um outro probleminha

HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 14

11: 
12: <html:form action="/login" focus="user.login" >
13: 
14: 	<html:text property="user.login" name=""></html:text>
15: 	<br>
16: 	
17: 	<html:password property="user.senha"></html:password>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause 

javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot find bean: "" in any scope
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:88)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause 

javax.servlet.jsp.JspException: Cannot find bean: "" in any scope
	org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:864)
	org.apache.struts.taglib.html.BaseFieldTag.prepareValue(BaseFieldTag.java:123)
	org.apache.struts.taglib.html.BaseFieldTag.renderInputElement(BaseFieldTag.java:102)
	org.apache.struts.taglib.html.BaseFieldTag.doStartTag(BaseFieldTag.java:80)
	org.apache.jsp.index_jsp._jspx_meth_html_005ftext_005f0(index_jsp.java:154)
	org.apache.jsp.index_jsp._jspx_meth_html_005fform_005f0(index_jsp.java:113)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:77)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.

Eu não entendo pq acontece isso se eu fiz a minha action certinho...gostaria de enteder como funciona

minha action

package br.com.seguradora.action;

import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import br.com.seguradora.bean.Usuario;
import br.com.seguradora.form.loginForm;

public class loginAction extends Action {
	
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			ServletRequest request, ServletResponse response) throws Exception {

		loginForm formulario = (loginForm) form;
		Usuario user = formulario.getUser();
		
		return mapping.findForward("valid");
	}
	
}
H

UP

H

up

R

isso eh código legado q tu ta dando manutenção ou é só teste?se for teste,pq nao usa o struts 2?

I

Se postar o codigo fica melhor

I

Você tem que mapear na Action o ActionForm que ela vai utilizar .

I

Da uma olhada no site do Struts la tem um exemplo pq neste momento nao estou com o exemplo aki

I
<form-beans>
    	 <form-bean name="login" type="pkg.form"/>
</form-beans>

<action  path="/ExibirLogin" type="pacote_onde_esta_sua_action" name="login(nome do fom-bean identificado aí em cima)" scope="request" validate="false" >
</action>

espero que ajude

I
Criado 14 de março de 2008
Ultima resposta 19 de mar. de 2008
Respostas 12
Participantes 3