Struts 2 Validation и Input поля повторного заполнения
Если у меня есть следующий конфигурационный файл 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>
И простая форма только с одним полем:
<s:form action="result">
<s:textfield name="firstName" label="First Name"/>
<s:submit/>
</s:form>
Если проверка не пройдена, допустим, что каждый раз, когда я отправляю действие (результат), проверяется, что длина firstName длиннее 3. В случае неудачи он возвращается на страницу ввода, в данном случае input.jsp, но с полем firstName, уже заполненным ( с неверным значением, которое я только что отправил. Как Struts 2 делает это? Интересно, потому что, как я понимаю, когда я отправляю, по умолчанию метод POST вводит входные данные в действие, и те имена параметров запроса, которые соответствуют валидации, будут проверены. если проверка не пройдена, она вернется на страницу ввода (в ответ на запрос POST) с доступными только параметрами запроса, поэтому мне приходит в голову только то, что поле ввода заполняется параметрами запроса, но, например, если я сделаю следующий тест. Допустим, я буду имитировать это следующим:
HTTP: //domain/myApp/input.action ПгвЬЫат = Альфредо Поле ввода firstName не будет заполнено.
Но когда результат приходит из проверки, он будет заполнен. Интересно, если Struts 2, чтобы получить те значения, которые должны быть в параметрах запроса, нажмите объект параметра запроса (#parameters) и таким образом он будет заполнен.
Может ли кто-нибудь объяснить мне это? Как Struts 2 достигает этого заселения?
Спасибо.