Erro no validator

3 respostas
erickles

Olá novamente pessoal,

Procurei no forum para ver c jah havia acontecido este erro, porem não achei :frowning:

Acontece o seguinte, to mechendo com o framework validator e da o seguinte erro no browse:

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: No getter method for property: "loginName" of bean: "org.apache.struts.validator.DynaValidatorForm"
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

root cause

javax.servlet.ServletException: No getter method for property: "loginName" of bean: "org.apache.struts.validator.DynaValidatorForm"
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
	org.apache.jsp.LoginStruts_jsp._jspService(LoginStruts_jsp.java:77)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

root cause

javax.servlet.jsp.JspException: No getter method for property: "loginName" of bean: "org.apache.struts.validator.DynaValidatorForm"
	org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:987)
	org.apache.struts.taglib.html.BaseFieldTag.prepareValue(BaseFieldTag.java:121)
	org.apache.struts.taglib.html.BaseFieldTag.renderInputElement(BaseFieldTag.java:102)
	org.apache.struts.taglib.html.BaseFieldTag.doStartTag(BaseFieldTag.java:81)
	org.apache.jsp.LoginStruts_jsp._jspx_meth_html_text_0(LoginStruts_jsp.java:177)
	org.apache.jsp.LoginStruts_jsp._jspx_meth_html_form_0(LoginStruts_jsp.java:134)
	org.apache.jsp.LoginStruts_jsp._jspx_meth_html_html_0(LoginStruts_jsp.java:103)
	org.apache.jsp.LoginStruts_jsp._jspService(LoginStruts_jsp.java:69)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

Não entendo, como declarar um metodo “get” para uma propriedade, se a classe eh do proprio framwork ?

Eis os arquivos de configuração:

struts-config.xml:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

<struts-config>
    <form-beans>
        <form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm"/>  
        <form-property name="loginName" type="java.lang.String"/>
        <form-property name="password" type="java.lang.String"/>
    </form-beans>
     
    <global-forwards>
        <forward name="welcome"  path="/Welcome.do"/>
        <forward name="login"  path="/Login.do"/>
    </global-forwards>

    <action-mappings>
        <action name="loginForm" path="/login" scope="request" type="actions.LoginAction" 
                validate="true" input="/loginStruts.jsp">
        <forward name="success" path="/success.jsp"/> 
        <forward name="failure" path="/failure.jsp"/> 
        </action>
        <action path="/Login" forward="/loginStruts.jsp"/>
    </action-mappings>
    
    <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>

    <message-resources parameter="com/myapp/struts/ApplicationResource"/>    
    
    <plug-in className="org.apache.struts.tiles.TilesPlugin" >
        <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />      
        <set-property property="moduleAware" value="true" />
    </plug-in>
    
    <!-- ========================= Validator plugin ================================= -->
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property
            property="pathnames"
            value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
    </plug-in>
    
    <message-resources parameter="ApplicationResources"/>
  
</struts-config>

validator.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">

<form-validation>
      <formset>
          <form name="loginForm">
            
            <field property="loginName" depends="required">
                <arg0 key="error.loginname.required"/>
            </field>
            
            <field property="password" depends="required,minlength">
                <arg0 key="error.password.required"/>
                    <var>
                        <var-name>minlength</var-name>
                        <var-value>4</var-value>
                    </var>
            </field>
        </form>

    </formset>

   </form-validation>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<html:html> 
 <head>
  <title>Login Page</title>
 </head> 
 <body> 
  <h1> Login Page </h1> 
  <br/> 
  <html:form action="/login"> 
   User Name : <html:text property="loginName"/> <br/> 
               <html:errors property="loginName"/>
   Password :  <html:password property="password"/> <br/> 
               <html:errors property="password"/>
               </br>
   <html:submit/> 
  </html:form>
 </body>
</html:html>

e a actionservlet:

package actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.*;
import org.apache.struts.validator.*;
import forms.LoginForm;
import javax.servlet.http.*;


public class LoginAction extends Action {
    
    private final static String SUCCESS = "success";
    
    public ActionForward execute(ActionMapping mapping, 
        ActionForm  form,
        HttpServletRequest request, HttpServletResponse response)
        throws Exception {
        
        DynaActionForm dForm = (DynaActionForm) form;
        String loginName = (String) dForm.get("loginName");
        String password = (String) dForm.get("password");
        
        //LoginForm loginForm = (LoginForm) form;
        
        //String loginName = loginForm.getLoginName();
        //String password = loginForm.getPassword();
        
         // Verifica se é o usuário correto
        if (!(loginName.equals("JEDI") && password.equals("JEDI")))
        return mapping.findForward("failure");
        // Armazena o resultado no session scope para uso no restante da aplicação
        HttpSession session = request.getSession();
        session.setAttribute("USER", loginName);
        // o usuário efetuou o login com sucesso. Despacha o usuário para 
        // o restante da aplicação. 
        
        return mapping.findForward("success");
        
    }
}

Nossa, o topico fico gigante… :oops:

Se puderem me ajudar, agradeço muito msm !

3 Respostas

erickles

up

juloko666

Esse erro me parece muito familiar…

vc colocou os getters e setters na classe que conversa com teu JSP? No caso é a “DynaValidatorForm”…

erickles

juloko666:
Esse erro me parece muito familiar…

vc colocou os getters e setters na classe que conversa com teu JSP? No caso é a “DynaValidatorForm”…

Ai que tah…a classe “DynaValidatorForm” eh uma classe do Struts…

Criado 21 de dezembro de 2008
Ultima resposta 22 de dez. de 2008
Respostas 3
Participantes 2