Поддержание значений переменных действия между различными запросами - PullRequest
0 голосов
/ 12 декабря 2011

Я - струс2 для разработки своего приложения. Пример кода класса действий будет

class sampleAction extends Action {
private List<Employee> employee;
public validate(){
--logic for validation
}
public String prepopulate(){
--logic for populating value of employee list
}
--getters and setters
}

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

1 Ответ

4 голосов
/ 12 декабря 2011

Я никогда не использовал встроенный механизм проверки в Struts 2, так как я предпочитаю проверку на стороне клиента, чтобы избежать дополнительного обхода.Это сугубо личный выбор, а не стандарт.

Во-первых, я предлагаю вам не использовать Action, а использовать ActionSupport: ActionSupport предоставляет множество функций из коробки, и вам не нужноделать все самостоятельно.

Я предполагаю, что вы используете defaultStack, и если это так, то он предоставляет из коробки Prepare Interceptor, который заботится о подготовке любых значений до вызова самого действия.

В вашем случае validate вызывается перед методом execute, поэтому у вас никогда не будет возможности заново заполнить значения, которые вам нужны в вашем JSP.

Все, что вам нужнонеобходимо убедиться, что в вашем классе действий есть метод prepare().Вот более подробная информация об этом перехватчике:

Подготовка перехватчика FAQ: Как мы повторно заполняем элементы управления при сбое проверки

...