Свойства не устанавливаются в методе подготовки

Я использую Struts2 и действие, реализующее интерфейс Preparable.

Когда я отправляю форму, свойства действия не устанавливаются в prepare() методе действия. Я получаю значения в методе действия (например, execute()), но они пусты в методе prepare().

Как я могу установить свойства перед запуском метода prepare()?


person Kalpesh    schedule 21.05.2015    source источник
comment
Зачем тебе это? Вероятно, есть лучший способ добиться того, что вам действительно нужно.   -  person Aleksandr M    schedule 21.05.2015


Ответы (1)


В стеке перехватчиков по умолчанию перехватчик подготовки запускается перед перехватчиком параметров. Это означает, что внедрение параметров еще не произошло, когда Prepare Interceptor выполняет метод prepare(). Вам нужно переместить Перехватчик Параметров перед Подготовить Перехватчик, либо продублировать его, поставив одно объявление перед Подготовить Перехватчик.

Для этой цели создан стек перехватчиков по умолчанию, paramsPrepareParamsStack; читайте больше здесь и здесь< /а>.

Обратите внимание, что такого рода проблемы повторяются в Struts2, вам нужно понимать, как работает стек Interceptor и какие задачи решает каждый отдельный Interceptor.

Например, это происходит при использовании ModelDriven или при использовании сопоставления подстановочных знаков. И наверняка это произойдет с вашим пользовательским Interceptor, если вы поместите их не в то место.

person Andrea Ligios    schedule 21.05.2015