Я пытаюсь понять, есть ли самый простой и короткий способ заполнить поля формы, после того, как она не прошла проверку и перенаправлена (следуя описанной здесь схеме ).
У меня есть форма, которая вызывается из действия addPerson.action, а действие отправки - savePerson.action.Если проверка не пройдена, я перенаправляю все параметры, чтобы перенаправленная страница заполняла поля данными, вставленными пользователем, чтобы пользователю не пришлось начинать с нуля.Проблема этого решения состоит в том, что мне нужно перечислить каждый отдельный параметр формы в struts.xml, как в примере ниже:
<action name="savePerson" class="personAction" method="savePerson">
<interceptor-ref name="store">
<param name="operationMode">STORE</param>
</interceptor-ref>
<interceptor-ref name="myStack" />
<result name="success" type="redirectAction">
<param name="actionName">listPeople</param>
</result>
<result name="input" type="redirectAction">
<param name="actionName">addPerson</param>
<param name="parse">true</param>
<param name="person.name">${person.name}</param>
<param name="person.surname">${person.surname}</param>
<param name="person.gender">${person.gender}</param>
<param name="person.email">${person.email}</param>
<param name="person.mobile">${person.mobile}</param>
</result>
</action>
<action name="addPerson" class="personAction" method="addPerson">
<interceptor-ref name="store">
<param name="operationMode">RETRIEVE</param>
</interceptor-ref>
<interceptor-ref name="myStack" />
<result name="success">/person/add.jsp</result>
<result name="input">/person/add.jsp</result>
</action>
Мне пришлось использовать MessageStoreInterceptor для сохранения и получениясообщения об ошибках валидации от перенаправления.
Я уже использую валидацию ajax, но я хочу, чтобы мои страницы также работали в режиме не javascript.С кодом выше все работает как положено, но выглядит странно, что я должен перечислить все свои параметры в теге результата.
Есть ли лучший и более короткий способ сделать это?спасибо