У нас есть перехватчик, у нас есть собственный перехватчик, в котором мы можем делать все, что хотим, до или после выполнения нашего действия.
Тогда зачем использовать интерфейс Preparable и реализовывать для него метод подготовки?
это еще один вариант или есть какая-то конкретная цель сделать так?
Зачем нам нужен Preparable Interface в Struts2?
Ответы (2)
Интерфейс Well Preparable действует в сочетании с Prepare Interceptor. Этот интерфейс имеет один метод, определенный prepare()
, и, как следует из его названия, этот метод отвечает за то, чтобы действие могло подготовиться.
Подготовить перехватчик вызывает prepare()
для действий, которые реализуют Preparable. Этот перехватчик очень полезен в любой ситуации, когда вам нужно обеспечить выполнение некоторой логики до запуска фактического метода выполнения. Поэтому, если вы видите, что это какой-то тип if init
для вашего класса действий, и он гарантирует, что до выполнения действия или любого другого метода получить вызов, этот метод подготовит ваш метод выполнения к нормальной работе.
Если вы увидите определение стека по умолчанию в ядре, вы узнаете, что этот перехватчик вызывается перед params
или перехватчиком рабочего процесса, что указывает на его назначение.
Обычно это используется для запуска некоторой логики для загрузки объекта из базы данных, чтобы при установке параметров их можно было установить для этого объекта. Для получения подробной информации ознакомьтесь с документом по подготовке перехватчика, чтобы узнать, как он тесно работает с интерфейсом Preparable. Короче говоря, подготовка перехватчика вступит в действие только тогда, когда действие реализует Preparable.
Подготовленный интерфейс гарантирует, что если используемый объект уже находится в стеке значений, нет необходимости запрашивать базу данных, она заполняет свойства формы, используя существующий объект в стеке значений.