在 Struts2 中,如果我们定义了一个拦截器堆栈,并且以先进先出的方式调用它。因此,在后期处理阶段,如果早期拦截器之一返回一个控制字符串,结果将响应呈现给客户端,会发生什么。我想知道是否会处理左侧拦截器。
问问题
1027 次
1 回答
1
那么它会像这样工作。
只有在完全调用拦截器堆栈后,才会调用您的操作方法。这意味着一旦在堆栈中成功调用第一个拦截器,它将调用堆栈中定义的下一个拦截器,并且引用存储在堆栈中,此链将继续调用直到调用堆栈中的最后一个拦截器
invocation.invoke()
此调用是调用堆栈中定义的下一个拦截器的关键,或者这是最后一个它将调用您的操作类中所需的函数。
现在在其他情况下,假设某些拦截器失败说workflow
它将返回结果INPUT
并将停止拦截器的进一步执行,并且框架将向用户输出所需的 JSP/Tempelate。
在这种情况下,后处理/清理会以相反的顺序调用拦截器,即最顶部或最新执行的拦截器将首先被调用,依此类推。
这个后处理的想法是做任何清理工作或任何其他需要做的事情(比如清理资源等)
希望这会给你一些想法。
于 2012-02-03T11:37:44.530 回答