我正在开发一个使用Struts1.1的旧web应用程序。为了进行业务验证(涉及多个表单属性和调用后端服务的复杂验证),我编写了一个在ActionForm.validate方法上调用验证器链的ActionForm实现。
验证器链是使用commons链实现的。一切都很好,除了当ActionForm.validate中发生异常时,struts异常处理程序不会捕获它,而是在屏幕上显示堆栈跟踪。struts异常处理程序没有捕捉到这一点
有没有办法避免页面上的堆栈跟踪,并将异常传播到struts异常处理程序?
谢谢
发布于 2011-07-21 23:12:31
也许最好是验证器根本不抛出异常。验证是根据minChars、maxChars、密码强度/验证、电子邮件语法正确性、isNumber等约束检查用户输入。如果验证器失败,它应该只返回false -永远不要抛出异常。请参阅http://struts.apache.org/1.2.4/userGuide/dev_validator.html上的示例
如果您的验证器调用后端函数...我想一定是出了什么问题。验证器应该只添加字段错误。
如果由于语法上的正确输入而产生错误(例如,登录时输入了错误的用户/密码),那么struts应用程序(您的操作)应该对此进行处理,并将操作错误返回给用户。这可以通过在抛出异常时重定向到错误页面(UserNotLoggedInException)来实现。
https://stackoverflow.com/questions/3463639
复制相似问题