struts2 spring整合fieldError问题
网络编程 2025-03-13 22:57www.168986.cn编程入门
遇到了一种在使用校验框架时遇到的独特问题,即在JSP页面校验失败后,用户无论后续输入是否正确,都无法跳转到异常处理页面。这背后的原因,与Spring框架中默认的行动对象创建模式有关。
在Spring框架中,默认情况下,行动对象(Action)是以单例模式(singleton)创建的。这意味着在整个应用的生命周期内,Spring只会为IOC容器创建一个行动对象实例。在处理表单校验的过程中,每次提交都需要一个全新的行动对象实例,以便能够清除存储于其中的错误信息。这是因为错误信息通常是存储在Map中(例如用于存储fieldError信息的Map),如果不进行清除,就会一直累积下去。
为了解决这个问题,我们需要改变行动对象的创建模式。在Spring的配置文件applicationContext-.xml中,我们需要针对特定的行动对象配置一个属性——scope="prototype"。这意味着每次请求都会创建一个新的行动对象实例,从而确保每次提交时Map中的错误信息都会被清除。这样,无论是首次提交还是后续提交,校验失败后的错误信息都会得到妥善处理,从而避免了跳转异常的问题。通过这样的配置调整,我们可以确保系统的正常运行和用户友好的体验。这样一来,问题就得到了圆满的解决。Cambrian框架的渲染机制(如通过调用`cambrian.render('body')`)也能在一个健康的环境中顺畅运行。这样既能保持用户界面的美观与功能,也能确保后台数据处理和校验的准确性。
上一篇:JavaScript实现的反序列化json字符串操作示例
下一篇:没有了
编程语言
- struts2 spring整合fieldError问题
- JavaScript实现的反序列化json字符串操作示例
- 解析SQLServer2005的Top功能
- SQL删除多列语句的写法
- json的结构与遍历方法实例分析
- SQL Server 2008 正式版安装指南 包含序列号
- jQuery中contents()方法用法实例
- laravel 获取某个查询的查询SQL语句方法
- php excel reader读取excel内容存入数据库实现代码
- springmvc接收jquery提交的数组数据代码分享
- asp.net基于Web Service实现远程上传图片的方法
- 『PHP』PHP截断函数mb_substr()使用介绍
- laravel5.1 ajax post 传值_token示例
- SqlServer 复制中将大事务分成小事务分发的方法
- JS实现DIV容器赋值的方法
- c#后台修改前台DOM的css属性示例代码