zoukankan      html  css  js  c++  java
  • spring+struts2引起的错误被记忆问题

    标题表述的比较模糊,详细情况是这样的:

    目前开发的一个管理系统,当使用出现异常时会自动跳转到错误页。其处理流程是“发生异常——跳转到错误处理action——错误页”。

    但是出现了一个bug,即某个操作引发过一次异常之后,这个操作之后会一直报异常。

    比如“添加商品信息”这个操作由于非法字符引发了异常,那么在这之后,就算填写的信息是正确的,程序仍然会跳转到非法字符的错误页。

    在参考了这篇文章http://zfei.iteye.com/blog/1236020后,问题解决了。

    这个bug的原因如下:

    Struts2单独使用时,会对每一个请求,产生一个Action的实例来处理.

    而Spring的Ioc容器管理的bean默认是单实例的.

    Struts2 与Spring整合后, 由spring来管理Struts2 的Action,bean默认是单实例有情况下,Struts2的action变成了单例模式,于是产生了如下问题:

    1) Action是单例,其中的FieldError,actionerror中的错误信息会累加, 即使再次输入了正确的信息,也过不了验证.

    2) Struts2 的Action是有状态的,他有自己的成员属性, 所以在多线程下,会有问题.

     

    文章给出的解决方案有两个,我们用了第一个

    不用单例, spring中bean的作用域设为prototype,每个请求对应一个实例.

  • 相关阅读:
    bzoj3401[Usaco2009 Mar]Look Up 仰望*
    bzoj2021[Usaco2010 Jan]Cheese Towers*
    bzoj3767A+B Problem加强版
    bzoj3942[Usaco2015 Feb]Censoring*
    bzoj1673[Usaco2005 Dec]Scales 天平*
    bzoj3670[Noi2014]动物园
    stark——pop功能(admin中添加功能)
    stark——快速过滤list_filter
    stark——分页、search、actions
    stark——增删改页面
  • 原文地址:https://www.cnblogs.com/bailiyi/p/3284700.html
Copyright © 2011-2022 走看看