2012-06-01 2 views
0

Как предотвратить сброс поля формы bean-компонента при отправке для проверки. Дело здесь в том, что это поле формы не является полем ввода jsp. Показано, как обычный HTML textlike это ..Struts Form bean не сбрасывает поле формы при отправке

<div class="label"> 
      <fmt:message bundle="${labels}" key="gender" /> 
</div> 
<div class="data"> 
     <bean:write property="gender" name="infoForm"/> 
</div> 

Что происходит, что, когда я нажимаю кнопку отправки, и если есть какие-либо ошибки проверки, все остальные поля ввода заполняются еще раз, но это один пол поле не показано на рисунке.

Моя догадка заключается в том, что свойство gender здесь не является полем ввода, когда форма сбрасывается до или после проверки, гендерное значение не заполняется. Я прав? Если да, то что я могу сделать, чтобы не сбросить это конкретное поле?

ответ

1

Если эта информация поступает из формы на предыдущей странице (например, если вы реализуете мастер, где одна большая форма разделена на несколько страниц), вы можете использовать скрытое поле формы для хранения информации и повторите его в каждой последующей форме.

Если это только информация, поступающая с сервера (из базы данных, например, или вычисляемая из других полей ввода), то вы должны просто получить информацию снова из базы данных (или перепроверить ее) и поместить ее снова в форма.

+0

(Или, если это уже будучи отображается правильно, как утверждает OP.) –

+0

@JB Nizet: Спасибо за ответ. Информация поступает из базы данных. Итак, когда именно я снова помещаю его в форму после отправки? Если есть ошибки проверки, форма возвращается к просмотру и не проходит через класс действий. – RKodakandla

+0

Это одна из причин, почему Struts 1 отстой: проверка должна выполняться действием, а не формой. Но вы можете отключить автоматическую проверку формы, вызвать метод validate самостоятельно в действии и повторно заполнить форму и переслать вход вперед. Если вы можете, обязательно переключитесь на Stripes или Spring MVC, которые есть, ИМХО, действительно лучше, чем Struts 1. –

0

Чтобы решить эту проблему, я добавил скрытое поле формы с таким же параметром ...

<html:hidden property="gender" name="infoForm"/> 

, который сохранил значение поля после сброса в проверке ...

Смежные вопросы