Problemas com Action no struts

12 respostas
herbertins

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

herbertins
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

herbertins

como isso ??? eu achei que tinha mapeado

herbertins

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

herbertins

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");
	}
	
}
herbertins

UP

herbertins

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