1

在我的 Spring MVC 应用程序中,我有许多方法用于@RequestBody绑定到我定义的域对象(特别是从 JSON 使用 Jackson)。

我目前正在使用一个简单的异常视图,如下所示:

<bean id="exceptionHandler" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <property name="defaultErrorView" value="errorXmlView" />
</bean>


<bean id="errorXmlView" class="com.example.MyCustomXmlView" />

我的问题是,在里面MyCustomXmlView,目前只是扩展AbstractView,有没有办法可以访问绑定的对象@RequestBody?也就是说,假设它已经走到了那一步,而且它不是一个有约束力的例外。例如,是否有某种我可以调用的请求范围的 bean,或者有一种方法可以将对象注入到我的异常视图的模型中?如果没有,是否有不同的方法来定义允许我这样做的异常解析器?

4

2 回答 2

2

你考虑过@ExceptionHandler注释吗?spring 文档有一个使用示例,我想您可以创建一个自定义异常来保留您的模型,然后您应该能够在您的异常处理方法中访问它。

于 2012-06-06T20:35:12.963 回答
1

我经常使用 a 捕获控制器方法参数ThreadLocal,然后将它们存储起来以供以后在日志记录等中使用。我发现最好的方法是使用@Aspect(或您喜欢的任何 AOP 策略)来拦截控制器方法并存储该方法参数供以后使用。

于 2012-06-08T12:23:34.307 回答