Инициализация переменных по умолчанию в формах действий - PullRequest
0 голосов
/ 31 июля 2010

Я сделал из примерно так:

MyForm extend ActionForm{

  list<Menu> MenuList=null;

  MyForm(){

    super();

    setMenuList(); //initialize menu list

  }

}

Объект меню имеет описание строки и логическую переменную для выбранного или нет.

На веб-странице я перебираю список для отображения всехменю и флажок над этими логическими переменными.Но список устанавливается по умолчанию каждый раз, когда я хочу получить доступ к выбранным элементам.Это из-за конструктора, я определил ?????Пожалуйста, помогите мне, ребята ??

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

1 Ответ

1 голос
/ 31 июля 2010

Проверьте Подготовка перехватчика .Он позволяет автоматически вызывать метод prepare при вызове действия до того, как произойдет любая другая логика действия:

public class MyForm extend ActionForm implement Preparable {

  list<Menu> MenuList=null;

  prepareView(){
      // initialize your menu list
      List yourMenu = new ArrayList();
      yourMenu.add("foo");
      yourMenu.add("bar");
      setMenuList(yourMenu);
  }

  view(){
      return INPUT;
  }
}

В приведенном выше примере, когда вы вызываете метод view () MyForm, prepareView ()будет вызван первым, настроив ваше меню и готовый для использования на входе.

Вы также можете рассмотреть возможность добавления yourMenu к сеансу на время действия, чтобы он все еще был доступен длявы, если вы столкнулись с ошибками проверки.

...