Рабочий процесс Struts Interceptor

В Struts2, если мы определили стек перехватчика, и он вызывается в порядке «первым прибыл — первым обслужен». Итак, на этапе постобработки, что произойдет, если один из более ранних перехватчиков вернет управляющую строку, которая в результате отобразит ответ клиенту. Я хочу знать, будет ли обработан левый перехватчик или нет.


person NIVESH SENGAR    schedule 03.02.2012    source источник


Ответы (1)


Ну это будет работать так.

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

invocation.invoke()

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

теперь, в другом случае, предположим, что какой-то из перехватчиков потерпел неудачу, скажем, workflow, он вернет результат как INPUT и остановит дальнейшее выполнение перехватчика, а фреймворк выведет пользователю желаемый JSP/Tempelate.

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

Идея этой постобработки состоит в том, чтобы выполнить любую работу по очистке или любые другие вещи, которые необходимо сделать (например, очистку ресурсов и т. д.).

Надеюсь, это даст вам некоторое представление.

person Umesh Awasthi    schedule 03.02.2012
comment
спасибо Umesh.......... Это означает, что страница будет отображаться клиенту, а процесс будет выполняться в фоновом режиме....... - person NIVESH SENGAR; 03.02.2012
comment
да... когда invoke() возвращает результаты, они уже были отправлены обратно клиенту. Короче говоря, мы можем сказать, что эту постобработку можно использовать для выполнения определенной/условной логики. - person Umesh Awasthi; 03.02.2012
comment
@NIVESHSENGAR Я бы добавил только то, что реализация PreResultListener позволяет перехватчику получить контроль до того, как результат будет визуализирован, в противном случае это разумное описание. - person Dave Newton; 03.02.2012
comment
@DaveNewton: не могли бы вы указать мне на это. Я не очень хорошо знаком с этой концепцией. Любой указатель на документы поможет мне понять это. - person Umesh Awasthi; 03.02.2012
comment
@UmeshAwasthi Есть эта страница, а другая с примечанием на ней. писал, а теперь не могу найти. - person Dave Newton; 03.02.2012
comment
@DaveNewton: Спасибо, я не знал об этом :) - person Umesh Awasthi; 03.02.2012