2013-03-19 1 views
-1

Я хочу, чтобы вызвать метод prepare() при загрузке страницы в Struts 2.Struts2 - Как вызвать метод prepare() при загрузке страницы?

Это мое понимание того, что если я реализовать интерфейс Preparable на моем действии, что метод prepare() должен автоматически сгореть при загрузке страницы. Это верно? Или нужна ли другая конфигурация?

Я спрашиваю, потому что это то, что я сделал, и метод подготовки запускается только при нажатии кнопки, непосредственно перед запуском метода execute.

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

+0

1) Удалите исключение вашего метода (который вы положили там, почему?); 2) Поместите System.out.println («Foo имеет бары!») В вашем методе prepare() как FIRST; тогда расскажите нам, что происходит. Как уже было сказано в другом вопросе (http://stackoverflow.com/questions/15437264/struts2-prepare-method-does-not-run-on-page-load), возможно, ваша подготовка * работает *, а затем собирается ошибка из-за не инициализированного параметра. Убедитесь, что вы используете стек перехватчика, который я предложил вам там. И не трогайте его, если вы не знаете, что делаете ... –

+0

@AndreaLigios 1) Что значит удалить исключение моего метода? Я не указал никаких исключений ... 2) При загрузке страницы ничего не распечатывается. Подготовка выполняется, когда я нажимаю кнопку. – stinkyPete

+0

Я ссылаюсь на: «ПРЕДУПРЕЖДЕНИЕ: Параметр [registerUser] находится в списке шаблонов excludeParams!» –

ответ

2

prepare() Выполняется, когда выполнено действие Preparable.

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

+0

Метод prepare() применим ко всем моим действиям. Я не попадаю на обычную страницу jsp. Я использую конфигурацию расположений registerPage.jsp. Это проблема конфигурации. Но как его настроить? – stinkyPete

+0

Я получаю предупреждение, если это имеет какое-либо отношение к нему: ПРЕДУПРЕЖДЕНИЕ: Параметр [registerUser] находится в списке шаблонов excludeParams! – stinkyPete

+0

@stinkyPete Без дополнительной информации невозможно помочь. С обычным стеком вам вообще не нужно ничего делать для срабатывания методов 'prepare()'. –

1

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

По моему пониманию это неправильное. Метод подготовки используется для подготовки некоторых данных, которые будут использоваться методом execute() или любым другим рабочим методом класса Action и, таким образом, вызывается непосредственно перед рабочим методом по запросу из браузера.

Вызов метода prepare() при загрузке страницы был бы программно громоздким и, следовательно, его следует избегать. Попробуйте установить атрибут другого способом

Надеется, что это помогает :)

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

  • Нет связанных вопросов^_^