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,每个请求对应一个实例.

  • 相关阅读:
    TIM时钟频率计算
    时钟节拍tick
    Continue作用
    struct结构体的字节长度,字节对齐
    IAR所包含的头文件位置
    Oracle存储过程给变量赋值的方法
    DataTable如何去除重复的行
    C#遍历窗体所有控件或某类型所有控件
    SqlServer无备份下误删数据恢复
    45.4.7 序列:USER_SEQUENCES(SEQ)
  • 原文地址:https://www.cnblogs.com/bailiyi/p/3284700.html
Copyright © 2011-2022 走看看