Struts2: я не хочу, чтобы пользователь получал доступ к странице успеха без нажатия кнопки «Отправить» - PullRequest
0 голосов
/ 18 октября 2011

мои настройки таковы:

пользователи переходят к действию 1-й> showRegisterUser> (register.jsp)

когда пользователи нажимают кнопку отправки, пользователь направляется на действие> RegisterUser> (регистрация.jsp)

Теперь метод show исключен из проверки, поэтому страница чистая (т.е. без ошибок проверки), когда пользователь нажимает на кнопку «Подтвердить», проверки выполняются (если на странице отображается ошибка)

Мое требование заключается в том, что если пользователь непосредственно переходит на страницу RegisterUser (не щелкая по кнопке submit), его следует перенаправить на действие showRegisterUser.

Я не могу написать какой-либо код в execute какпроверки не пройдены, поэтому код в execute никогда не затрагивается

Пожалуйста, кто-нибудь может указать мне правильное направление

Спасибо

Ответы [ 3 ]

1 голос
/ 18 октября 2011

Если проверка не пройдена, по умолчанию используется ответ INPUT. Если у вас есть метод execute и input, вы можете связать свое действие как:

/showRegisterUser -> Action.input
/registerUser -> Action.execute

Направьте ваш «входной» ответ на «пустую / чистую» форму всего остального, как у вас есть.

1 голос
/ 18 октября 2011

В вашем валидаторе вы можете установить атрибут сеанса, указывающий на успешную валидацию.На странице RegisterUser вы можете проверить этот атрибут сеанса и перенаправить, если необходимо.

Вы захотите сбросить «действительный» атрибут сеанса, когда перейдете на страницу RegisterUser, или если вы не хотите принимать более одной регистрации из сеанса, проверьте его на showRegisterUser и перенаправьте назадна страницу RegisterUser, если она установлена.

Struts использует контроллеры.Файл validate.xml сравнивается с полями ввода, но он не запускается сам: класс контроллера выполняет фактическое сравнение.В классе контроллера вы решаете, допустим ли ввод, и можете решить, к какому представлению перейти оттуда.

0 голосов
/ 19 октября 2011

Добавить скрытое поле в форму

<s:hidden name="submitClicked" value="false"/>

Теперь измените значение этого поля на true onclick кнопки отправки.Теперь в вашем методе проверки проверьте значение этого поля, если оно false, тогда пропустите проверку и перенаправьте к желаемому действию showRegisteredUser или какому-либо

...