diferencia en el valor de propiedad recuperado en método de validación y modelo en Struts2

Estoy ejecutando una aplicación básica de Struts2 en la que tengo una confusión. Mi clase de acción implementa interfaces Preparable y ModelDriven y extiende la clase ActionSupport. El bean modelo tiene una propiedad única llamada "Usuario".

Mi página de inicio (jsp) tiene un campo de entrada correspondiente a la única propiedad "Usuario" de un bean modelo.

En el método prepare (), estoy inicializando el bean y configurando su propiedad a un valor predeterminado, por ejemplo, "Test" y el método model () está devolviendo este objeto bean.

En validate (), tengo una validación de que si la propiedad "User" de bean tiene un valor igual a "Test", entonces addFieldError procede.

public Student getModel() {
    System.out.println("inside getModel.."+ st.getName());      
    return st;
}

public void validate(){
    System.out.println("inside validate"+st.getName());
    if(st.getName().equals("Test")){
       addFieldError("name","blank field");
    }       
}

public void prepare() throws Exception {
    st = new Student();
    st.setName("Test");
}

Ahora, mi pregunta es: cuando accedo a la acción directamente, aparece el error y en la consola obtuve los siguientes registros:

inside getModel..Test
inside getModel..Test
inside validate...Test

pero si ingreso cualquier valor, diga "Apilar" en el campo de formulario y enviar el formulario, el método de validación imprime el valor que el usuario ingresó mientras que el método del modelo está imprimiendo qué preparación se ha inicializado.

inside getModel..Test
inside getModel..Test
inside validate...Stack

¿Porque? ¿Por qué ambos métodos no están sincronizados? ¿El método de validación y el método de modelo están escogiendo el valor de la propiedad de diferentes ubicaciones?

Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta