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,每个请求对应一个实例.
spring+struts2引起的错误被记忆问题的更多相关文章
- 最新版ssh hibernate spring struts2环境搭建
最新版ssh hibernate spring struts2环境搭建 最新版spring Framework下载地址:spring4.0.0RELEASE环境搭建 http://repo.sprin ...
- spring+struts2+ibatis 框架整合以及解析
一. spring+struts2+ibatis 框架 搭建教程 参考:http://biancheng.dnbcw.net/linux/394565.html 二.分层 1.dao: 数据访问层(增 ...
- spring+struts2+hibernate框架搭建(Maven工程)
搭建Spring 1.porm.xml中添加jar包 <!-- spring3 --> <dependency> <groupId>org.springframew ...
- [Java web]Spring+Struts2+Hibernate整合过程
摘要 最近一直在折腾java web相关内容,这里就把最近学习的spring+struts2+hibernate进行一个整合,也就是大家经常说的ssh. 环境 工具IDE :Idea 2018 数据库 ...
- Spring+Struts2+Hibernate的整合
这篇主要采用Maven搭建Spring+Struts2+Hibernate的整合项目,复习一下SSH框架,虽然spring提供自己的MVC框架, 但是Spring也提供和其他框架的无缝整合,采用组件形 ...
- 简单Spring+Struts2+Hibernate框架搭建
使用Maven+Spring+Struts2+Hibernate整合 pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0&q ...
- spring struts2 ibatis 框架结构图
spring struts2 ibatis 框架结构图
- SSH(Spring Struts2 Hibernate)框架整合(注解版)
案例描述:使用SSH整合框架实现部门的添加功能 工程: Maven 数据库:Oracle 框架:Spring Struts2 Hibernate 案例架构: 1.依赖jar包 pom.xml < ...
- struts2系列(二):struts2参数传递错误、struts2的输入错误验证
一.struts2参数传递错误 1. 基本数据类型的传递最好使用包装类,原因是struts 2.1之后使用基本数据类型如果参数为空会报错2. 日期参数的传递最好定义一个区域的属性(定义locale), ...
随机推荐
- 基于 WebGL 的 3D 动态柱状图表
发现现在工业SCADA上或者电信网管方面用图表的特别多,虽然绝大部分人在图表制作方面用的是echarts,他确实好用,但是有些时候我们不能调用别的插件,这个时候就得自己写这些美丽的图表了,然而图表轻易 ...
- Ubuntu Qt5.13 无法输入中文和中文显示乱码问题
无法输入中文: sudo apt-get install libfcitx-qt5-dev cd /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminput ...
- shark恒破解笔记4-API断点GetPrivateProfileStringA
这小节是通过断在GetPrivateProfileStringA,然后找到注册码的. 1.运行程序输入假码111111,提示重启.通过这判断这是一个重启来验证的,那么它是如何来验证的呢?观察程序目录下 ...
- caffe中softmax源码阅读
(1) softmax函数 (1) 其中,zj 是softmax层的bottom输入, f(zj)是softmax层的top输 ...
- 网络IO的虚拟化模型小结
网络IO的虚拟化模型随着技术发展,出现了多种方式,例如emulation.para-virtualization.pass-through和SR-IOV等,本文试图对其做一个简单的总结. Emulat ...
- java学习4-面向对象(上)
1.类和对象 修饰符可以是public.final.abstract或者完全省略这三个修饰符 类名命名规则:每个单词首字母大写,其他字母全部小写,单词与单词之间不使用分隔符 修饰符:可以省略,也可以是 ...
- Java类型信息(RTTI和反射)
要想在IT领域站得住脚,必须得不断地学习来强化自己,但是学过的技术不实践很容易便被遗忘,所以一直都打算开个博客,来记录自己学的知识,另外也可以分享给有需要的人! 最近在学习反射,为了更好地理解反射,就 ...
- Hadoop 在 windows 7 64位的配置(二)|非cygwin
第一次使用需要 hdfs namenode -format 一键启动和关闭hadoop 新建文本文档 然后改名 start-hadoop.cmd 里面的内容 @echo off cd /d %HADO ...
- Core3.0的 安装与坑坑坑!!!
Core3的 SDK下载地址是:https://dotnet.microsoft.com/download/dotnet-core/3.0 ! 不要下载preview8!!!,请先下载 previe ...
- MySql悲观锁与乐观锁区别及使用场景
一.概念上的区别 乐观锁( Optimistic Locking):顾名思义,对加锁持有一种乐观的态度,即先进行业务操作,不到最后一步不进行加锁,"乐观"的认为加锁一定会成功的,在 ...