Struts 2 - pegar dados digitado pelo usuario ao submeter a pagina com struts 2

Olá
Segue minha configuração do struts 2 quando executo o Login.jsp ele executa normamente, porem quando faço submit eu
gostaria de pegar o usuario e senha digidata em algum lugar do Login.java, porem siquer passa no meu system.out.println,
Alguem saberia me dizer porque?

Grato

=============================Jsp com o formulario========================
<%@ page contentType=“text/html; charset=UTF-8” %>
<%@ taglib prefix=“s” uri="/struts-tags" %>

Sign On

==================================Login.java=============================

package example;

public class Login extends ExampleSupport {

public String execute() throws Exception {

      System.out.println("gostaria de pegar o usuario e a senha digitada:");
    
   // if (isInvalid(getUsername())) return INPUT;

    //if (isInvalid(getPassword())) return INPUT;

    return SUCCESS;
}

private boolean isInvalid(String value) {
    return (value == null || value.length() == 0);
}

private String username;

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

private String password;

public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}

}

=======================example.xml================================================

<?xml version="1.0" encoding="UTF-8" ?>
<package name="example" namespace="/example" extends="struts-default">

    <action name="HelloWorld" class="example.HelloWorld">
        <result>/example/HelloWorld.jsp</result>
    </action>

    <action name="Login" method="{1}" class="example.Login">
        <result name="input">/examples/Login.jsp</result>
        <result type="redirect-action">Menu</result>
    </action>

    <action name="*" class="example.ExampleSupport">
        <result>/example/{1}.jsp</result>
    </action>

    <!-- Add actions here -->
</package>

Falae!

Notei que no seu form está faltando o atributo ‘name’, provavelmente é em função disto que sua action não está conseguindo obter o atributo.
Lembre-se que o nome do atributo do form deve ser o mesmo da sua classe de action.

Segue um exemplo de um projeto que tenho aqui:

index.jsp (com form de login)

<s:form validate="true" cssClass="wufoo " action="checkLogin" theme="simple"> <ul> <li id="liForm"> <label class="desc">Login</label> <s:textfield name="usu.usuario" label="Usuário" cssClass="field text" required="true">Usuário: </s:textfield> <s:password name="usu.senha" label="Senha" cssClass="field text" >Senha: </s:password> <s:submit value="Entrar"/> </li> </ul> </s:form>

classe de action:

[code]package br.com.sgvdba.actions;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import org.apache.struts2.interceptor.SessionAware;

import br.com.sgvdba.jdo.Usu;
import br.com.sgvdba.jdo.UsuDAO;
import br.com.sgvdba.security.EncriptaSenha;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport implements SessionAware{

private static final long serialVersionUID = -300519118088286674L;
private Usu usu;
private Map<String, Object> map;

public String execute(){
	if (hasActionErrors() || hasFieldErrors()){
		return Action.INPUT;
	}
	else {
		UsuDAO usuDAO = new UsuDAO();
		Usu usu = new Usu();
		String senhaCriptografada = EncriptaSenha.criptografar(this.usu.getSenha());
		usu = usuDAO.findByLogin(this.usu.getUsuario(), senhaCriptografada);
		this.usu = usu;
		if (this.usu == null){
			addActionError("Nome de usuário ou senha incorreta");
			return Action.INPUT;
		}
	}
	this.map.put("USUARIO_LOGADO", this.usu);
	return Action.SUCCESS;
}

public final Usu getUsu() {
	return usu;
}

public final void setUsu(Usu usu) {
	this.usu = usu;
}

public String getCurrentDate(){
	SimpleDateFormat dateFormat = new SimpleDateFormat();
	dateFormat.applyPattern("dd/MM/yyyy");
	return dateFormat.format(new Date()).toString();
}

@SuppressWarnings("unchecked")
public void setSession(Map map){
	this.map = map;
}

}[/code]

No mais é isso, espero ter ajudado!
Abraços!!!