通常,Struts 2动作实例将在请求中创建。我的意思是每个请求都会创建新的动作实例。但是,如果我与Spring集成,那么将只有一个动作实例将被创建(如果我错了,我不确定是否正确)。
那么在这种情况下,如果我在动作类中有实例变量,那该怎么办?
这里的第一个用户将使用一些实例变量设置该实例,第二个用户可以设置一些实例。它现在的表现如何?
更多说明:实例变量意味着,在Struts 2中,操作表单不会出现,因此,您的操作本身就可以作为获取请求参数的表单。第一个用户输入内容,第二个用户输入内容,两者都设置为一个实例操作。
答案 0 :(得分:0)
如果你的行为是由Struts容器管理的,那么Struts就会在default
范围内创建它们。
如果您的操作由Spring容器管理,那么您需要定义操作bean的范围,因为Spring默认使用singleton
范围。
如果您不想在用户请求之间共享动作bean,则应定义相应的范围。
您可以使用prototype
范围,这意味着每次Struts构建一个动作实例时,Spring都会返回一个新实例。