Как написать один класс действия и action-validation.xml для проверки двух форм на двух разных страницах jsp с помощью struts2 - PullRequest
0 голосов
/ 04 августа 2010

Я создаю приложение struts2, которое имеет страницу входа в систему и другую страницу сведений о пользователе. Там мне нужно создать только один класс действий. Из-за этого я не могу запустить приложение, добавив проверки полей на обеих страницах в action-validation.xml. Потому что при проверке страницы входа в систему она проверяет оставшиеся проверки полей (проверки полей, которые принадлежат странице сведений о пользователе) в файле validation.xml.

Поэтому, пожалуйста, поделитесь своими знаниями в struts2, чтобы использовать один класс действий с action-validation.xml для двухстраничных проверок (форм).

1 Ответ

0 голосов
/ 04 августа 2010

Вы можете сделать это, используя сопоставления подстановочных знаков и , связывая ваши правила проверки с вашим классом одиночного действия:

сопоставления подстановочных знаков

В вашем Struts.xml определите действие следующим образом:

<action name="user-*" class="DoSomething" method="{1}" >
    <result name="input">/WEB-INF/{1}.jsp</result>
    <result name="success">/WEB-INF/{1}-success.jsp</result>
</action>

Затем вы можете вызвать класс действия DoSomething с любым из этих двух URL:

http://yourapp.com/user-login.action
http://yourapp.com/user-details.action

В результате часть запроса после дефиса («логин» или «подробности») заменит {1} в вашем определении действия.Поэтому первый URL будет вызывать метод DoSomething.login(), перейдите к login.jsp на INPUT или login-success.jsp на SUCCESS.

Все, что вам нужно сделать, это определить login() и details()методы в DoSomething классе.

Ассоциация правил проверки

Чтобы связать правила проверки с вашим классом действий DoSomething, просто назовите XML-файл, содержащий их DoSomething-validation.xml .Поскольку и пользовательский логин, и пользовательские данные используют этот класс, правила будут выполняться для них обоих.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...