Java 未在准备方法中设置属性

Java 未在准备方法中设置属性,java,struts2,struts-action,struts2-interceptors,interceptorstack,Java,Struts2,Struts Action,Struts2 Interceptors,Interceptorstack,我正在使用Struts2和一个实现的操作 提交表单时,prepare()操作方法中未设置操作属性。我在action方法(例如execute())中获得了值,但在prepare()方法中它们是空的 如何在运行prepare()方法之前获取属性集?在默认侦听器堆栈中,prepare侦听器在参数侦听器之前运行。这意味着当Prepare拦截器执行Prepare()方法时,参数的注入尚未发生。您需要将参数拦截器移动到Prepare拦截器之前,或者复制参数拦截器,在Prepare拦截器之前放置一个声明 有一

我正在使用Struts2和一个实现的操作

提交表单时,
prepare()
操作方法中未设置操作属性。我在action方法(例如
execute()
)中获得了值,但在
prepare()
方法中它们是空的


如何在运行
prepare()
方法之前获取属性集?

在默认侦听器堆栈中,prepare侦听器在参数侦听器之前运行。这意味着当Prepare拦截器执行
Prepare()
方法时,参数的注入尚未发生。您需要将参数拦截器移动到Prepare拦截器之前,或者复制参数拦截器,在Prepare拦截器之前放置一个声明

有一个为此目的创建的默认拦截器堆栈,
paramspreparamsstack
;多读多读

请注意,这种问题在Struts2中经常出现,您需要了解拦截器堆栈是如何工作的,以及每个拦截器负责哪些业务


例如,它发生了,或者。当然,如果您将自定义拦截器放在错误的位置,它会发生在您的自定义拦截器上。

为什么要这样做?也许有更好的方法来实现你真正需要的东西。