Dúvidas gerais sobre JSP+Struts

Para explicar minhas dúvidas vou usar um exemplo bem simples:

struts-config.xml:

[code]<?xml version="1.0" encoding="windows-1252" ?>

[/code]

Página em JSP:

[code]
<%@ page contentType=“text/html;charset=windows-1252”%>
<%@ taglib uri=“http://jakarta.apache.org/struts/tags-html” prefix=“html”%>

Teste de Login



<html:form action=“logon.do” method=“POST”>
Nome <html:text property=“login” size=“20” maxlength=“10”/>
Sobrenome <html:password property=“senha” size=“20” maxlength=“10”/>
<html:submit property=“ok”/>

</html:form>

[/code]

Minha classe Acesso.java:

[code]package form;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;

public class Acesso extends ActionForm {
private String login="";
private String senha="";

public Acesso() {
}

    public void reset(ActionMapping actionMapping, HttpServletRequest request) {
        this.login="";
        this.senha="";
    }

    public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest request) {
        ActionErrors errs = new ActionErrors();
        return errs;
    }

public void setLogin(String login) {
    this.login = login;
}

public String getLogin() {
    return login;
}

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

public String getSenha() {
    return senha;
}

}[/code]

Meu action
ActionLogin.java:

[code]package action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import form.Acesso;

import manager.valida;
public class ActionLogin extends org.apache.struts.action.Action {

Acesso ac = new Acesso();
valida va = new valida();

private static final String FORWARD_acesso = “index”;

private static final String FORWARD_volta= "volta";

public ActionLogin() {
	
}


public ActionForward execute(ActionMapping ActionMapping, 
                             ActionForm ActionForm, 
                             HttpServletRequest HttpServletRequest, 
                             HttpServletResponse HttpServletResponse) throws Exception {
    String login = ac.getLogin();
    String senha = ac.getSenha();

    

             if(va.verificaSenha(login,senha)){
                                return ActionMapping.findForward(FORWARD_acesso);
                                     
                             }
                             else{
                             return 
                             ActionMapping.findForward(FORWARD_volta);}


}

}[/code]

E por último meu valida:
valida.java

[code]package manager;
public class valida{

public boolean 
	verificaSenha(String nome,String senha){
        
     if(nome.compareTo("pedro")==0){
             return true;
     }else if (senha.compareTo("1234")==0){
             return true;
     }
     else{
     return false;
     }
        
    }

    }

[/code]

1º Dúvida: Minha classe Acesso, onde fica meus gets e sets, não está pegando os valores do formulário. Pq o motivo??? Aparentemente está td certo.

2º Dúvida: Pq tem códigos de exemplo que eu vejo que tem html:html e tem uns que apenas usa taglib apenas dentro do form, como este exemplo??? O certo é usar taglib em tudo, como no body e no head(ficando html:body e html:head), ou só no form mesmo??

bom provavelmente seu erro esta no seu action ActionLogin.
onde você deveria usar seu form para recuperar os dados no seu
formulario, repare que você está instanciando um novo objeto
consequentemente esse objeto irá iniciar com seu valores default…

tente isso


 Acesso ac = (Acesso) ActionForm;

 String login = ac.getLogin();  
 String senha = ac.getSenha(); 

acho que é isso,

Deu certo!! Estava achando que o erro era por eu nao estar usando taglib no meu jsp. Essa e uma outra duvida minha, e correto nao usar taglib html no jsp? Eu estou usando html comum e esta funcionando td perfeitamente.

não faz sentido, pois você resolve com tags do struts, ok !!

Mas eu tenho que usar taglib html em tudo ou posso usar só no form??

Tinha feito o que vc falou sobre como instanciar o objeto do meu ActionForm e deu certo. O estranho que agora ele parou de pegar. Não foi alterado nada no código. O que eu fiz foi criar um outro Aplication com um nome diferente, mas as mesmas classes do meu aplication anterior. Será que pode ser isso que atrapalhou todo meu sistema?? Mandei imprimir o que ele pega e ele me retorna vazio.