Validação do Struts 2 e repovoamento dos campos de entrada

Se eu tiver a seguinte configuração struts.xml:

<action name="input">
   <result>/jsp/input.jsp</result>
</action>

<action name="result">
    <result>/jsp/result.jsp</result>
    <result name="input">/jsp/input.jsp</result>
</action>

E um formulário simples com apenas um campo:

<s:form action="result">
    <s:textfield name="firstName" label="First Name"/>
    <s:submit/>
</s:form>

Quando a validação falha, digamos que toda vez que envio a ação (resultado) valida que o comprimento do firstName é maior que 3. Quando falhar, ele retornará à página de entrada, neste caso, input.jsp, mas com o campo firstName já preenchido ( com o valor incorreto que acabei de enviar.Como o Struts 2 faz isso? Gostaria de saber porque, como eu entendo quando envio o método padrão, é POSTAR os dados de entrada para a ação e esses nomes de parâmetros de solicitação que correspondem à validação serão validados. caso falhe na validação, retornará à página de entrada (como resposta do POST) com apenas os parâmetros de solicitação disponíveis.Portanto, o único pensamento que me vem à mente é que o campo de entrada é preenchido com esses parâmetros de solicitação, mas por exemplo se eu fizer o seguinte teste, digamos que simule isso com o seguinte:

http: //domain/myApp/input.action? firstName = alfredo O campo de entrada firstName não será preenchido.

Mas quando o resultado vier de uma validação, ele será preenchido. Gostaria de saber se o Struts 2, a fim de obter os valores que deveriam estar nos parâmetros de solicitação, pressione o objeto de parâmetro de solicitação (#parameters) e desta forma ele será preenchido.

Alguém poderia me explicar isso? Como o Struts 2 alcança esse repovoamento?

Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion