从非控制器位置在Spring MVC中添加全局错误

从非控制器位置在Spring MVC中添加全局错误,spring,spring-mvc,Spring,Spring Mvc,在我的SpringMVC应用程序中,我需要添加一个全局错误。我不再有权访问任何BindingResult,我只有我的请求。我的错误不是任何绑定问题的结果,而是全局条件。然后我需要将新的Errors对象附加到“Errors”请求。属性,以便JSP可以显示它 但如何做到这一点呢?我做不到 Errors errors = new Errors(); errors.reject(....); request.setAttribute("errors", errors); 因为错误是一个接口。这些实现都

在我的SpringMVC应用程序中,我需要添加一个全局错误。我不再有权访问任何BindingResult,我只有我的请求。我的错误不是任何绑定问题的结果,而是全局条件。然后我需要将新的Errors对象附加到“Errors”请求。属性,以便JSP可以显示它

但如何做到这一点呢?我做不到

Errors errors = new Errors();
errors.reject(....);
request.setAttribute("errors", errors);
因为错误是一个接口。这些实现都与“绑定”有关,比如
BindException、AbstractBindingResult、MapBindingResult
,等等。这些都与我的案例无关,我没有绑定字段错误,这是一个一般性错误


有什么提示吗?

我们解决这个问题的方法:处理异常(而不是验证错误)的正确方法是跟踪我们自己的自定义请求属性,这些属性显示在JSP的错误区域中

BindingResult/Errors/等都与绑定相关,我们无法对其进行破解以处理一般异常错误

我们只需添加一个自定义请求属性。调用“exceptions”,然后我们的错误部分检查要显示的附加属性列表


SpringMVC不提供自己的“通用”错误集合。

发出错误信号的正常方式是抛出异常。然后您可以在控制器中捕获异常,并在那里添加全局错误。谢谢,但一旦我可以添加错误,我需要构造ObjectError或FieldError?这两个都需要一个我没有的“对象”。我传递空值吗?无法使用bindingResult.addError()添加没有对象DefaultMessageResolveable的超类。对于ObjectError,NULL不起作用,但是“”(空字符串)起作用。谢谢,我会根据你的建议写一个答案。