1

将 Struts 2.1.6 与 Tiles 一起使用。

我注意到我的 Struts 2 操作中有一些奇怪的行为。我在其中一个操作中设置了一个断点(比如 view())。当我第一次启动应用程序服务器时,单击我的 Web 应用程序中执行此操作的链接,调试器在断点处停止,我可以解决问题,发生异常并在 UI 上显示消息。

但是,当我再次单击同一个链接时,调试器不会命中断点,并且 UI 会显示相同的错误消息。我单击其他链接和其他调试点工作完全正常。当我再次单击相同的 URL 时,会显示相同的消息。我必须重新启动服务器并再次重复该过程。

有什么东西被缓存在某处吗?您认为没有创建新的 struts 动作实例吗?我该如何解决这个问题?我还没有发布任何代码,因为我不确定您可能需要哪些具体信息......

我为了分页目的在会话中存储了一些对象,这可能是问题吗?

4

1 回答 1

1

好吧,我从您的描述中读到的似乎问题出在您的代码中。每个请求 struts2 创建一个新的动作类实例以及请求和响应并将它们放在值堆栈中,所以无论上次执行的结果是什么,一个新的请求总是会创建一个新的实例。

根据框架架构创建新实例,因为 Action 也可用作数据传输对象(模型)。

我建议你检查你的配置,看看究竟是哪里出了问题。

作为旁注,您是否使用 Strts2-spring 插件,使用您需要设置的插件,scope=prototype否则 spring 默认情况下将创建单例动作实例,并且将一次又一次地使用相同的动作实例

于 2012-09-05T03:16:08.023 回答