我的印象是,Struts中的方法是当从struts.xml
调用动作类时调用的第一种方法。但是当我调试我的代码在动作类中有一个构造函数时,我看到构造函数首先被执行(我没有在这里创建任何实例)。Struts中的动作类执行流程
1)有些人可以解释一下action类中的执行流程,即在实际执行之前调用哪些方法。
2)我不知道为什么构造函数获取调用
我的印象是,Struts中的方法是当从struts.xml
调用动作类时调用的第一种方法。但是当我调试我的代码在动作类中有一个构造函数时,我看到构造函数首先被执行(我没有在这里创建任何实例)。Struts中的动作类执行流程
1)有些人可以解释一下action类中的执行流程,即在实际执行之前调用哪些方法。
2)我不知道为什么构造函数获取调用
Struts的执行行动之前调用了很多东西。但它可以在struts.xml
中配置。您可以从this的答案中看到执行操作的请求流程。
内部Struts使用
ObjectFactory
构建由配置定义的所有对象 。查看更多aboutObjectFactory
docs 或The Struts 2 Request Flow。
构造函数应该有default constructor或no-argument constructor,否则将无法构建。有关差异的详细说明,请参阅Java default constructor。
您不必为您的班级提供任何构造函数,但是您在执行此操作时必须小心。编译器自动为任何没有构造函数的类提供一个无参数,默认构造函数 。 该默认构造函数将调用超类的无参构造函数。在这种情况下,如果 超类没有无参数构造函数,编译器会发出抱怨,因此您必须验证它所做的 。如果你的类没有显式超类,那么它有一个Object的隐式超类,它有一个无参数 构造函数。
方法是通过拦截器在执行该操作之前调用居多。默认拦截器堆栈是defaultStack
。它涉及很多功能,在执行操作之前执行。请参阅this答案以获得有关默认配置的印象。
在动作执行之前调用拦截器。这就像服务请求的 管道一样。每个人在 之后援引一个。当最后一个拦截器处理完该动作后执行。 要在动作配置中调用哪些拦截器或通过注释调用 。有关拦截器的详细说明,请参阅docs。
你知道什么是构造函数吗? –
正在调用构造函数,因为构造函数在类是......时被调用,构造。操作是类,是按请求创建的,所以。我想这就是为什么。 –