栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从此Spring MVC控制器返回错误状态和验证错误?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从此Spring MVC控制器返回错误状态和验证错误?

正当您正在设计REST
api时,您需要创建自己的Pojo(又名Resource),该Pojo将代表奇怪的行为或验证错误,如horaceman所述。我将向您展示我们如何在应用程序中做到这一点。

由于我们使用JSON作为数据表示形式,因此,如果发生意外的异常,我们希望收到以下信息。

{ "status" : "EXCEPTION", "exceptionName" : "MyCustomException", "exceptionMsg" : "ex.unsupportedOperation" }

这当然是一个例子。不错的解决方案是,我们可以将其

exceptionMsg
视为前端中的键,以显示正确的
i18n
消息或将其按原样显示给用户(在这种情况下,我们使用更具描述性的消息)。

现在,当一切正常时,我们将执行以下操作:

{ "status" : "OK", "data" : {(...)} }

Data
元素是可选的。我们可以发送任何需要通知前端的信息,或者完全跳过它。

最后一种情况是您的-验证错误。在这种情况下,我们通常发送以下内容:

{ "status" : "VALIDATION_FAILED", "errors" : [ "fieldName" : "username", "errorCode" : "validation.requiredField", "errorMsg" : "Username is required."] }

显然,API客户端将在正确的字段中接收到验证失败的信息-
有关错误原因的确切详细信息。当然

errors
是一个数组(或
List
),所以我们总是根据需要提供尽可能多的细节。

我该怎么做?
这些对象很简单,就是简单的POJOS,可以使用Jackson将其转换为JSON。这给了我无限可能的JSON表示形式。我正在做的是准备代表验证错误的POJO(例如),并将其添加

Model
到我的
ModelAndView
实例中。然后,我仅依靠Spring进行正确的JSON封送处理。

就您而言

@ResponseBody
,您的
Post
实例具有注释,据我所知您将无法执行此操作。您的设置是说“好吧,无论发生什么情况-
始终返回Post实例”。您应该做的是将其替换为simple
ModelAndView
,并
Model
根据验证为其提供适当的信息,并将其返回给客户端API。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/443347.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号