gpt4 book ai didi

java - 如何使用 Struts 2 框架构建自定义 JSON 错误响应

转载 作者:搜寻专家 更新时间:2023-11-01 02:43:58 25 4
gpt4 key购买 nike

我正在使用 Struts 2 创建 Web 应用程序。当请求 URL 格式不正确时,我想发送如下所示的 JSON 错误响应:

{
“status”: 409,
"code": 40924
“property”: “aggregation”,
“message”: “aggregationId not specified.”,
“moreInfo”: “https://www.iiitb-swn.com/docs/api/errors/40924”
}

我已经在使用 struts2-json 插件来使用 JSON 序列化响应对象。我应该如何发送 JSON 错误响应。我可以想到下面的方法来做同样的事情。

在 Action 类中使用错误响应对象并显式设置所有需要的名称值对

private Map<String, String> errorObject;

public String execute()
{
...
if (aggregationId == -1)
{
errorObject = new HashMap<>();
errorObject.put("status", "400");
errorObject.put("code", "40924");
...
return INPUT;
}
...
}

然后我可以在我的 struts.xml 中处理仅序列化 errorObject

我想知道是否有一种既定的方法可以做到这一点?也许是一个可以更好地使用 Struts 2 框架的方法。

最佳答案

Struts2 actionErrorsfieldErrorsActionSupport提供。您可以填写操作错误,或者它们由验证拦截器生成。例如

addFieldError("aggregation", “aggregationId not specified.”);
addFieldError("moreInfo", “https://www.iiitb-swn.com/docs/api/errors/40924”);

然后返回json结果作为响应。

<result name="input" type="json">
<param name="statusCode">409</param>
<param name="errorCode">40924</param>
<param name="ignoreHierarchy">false</param>
<param name="includeProperties">^actionErrors.*,^fieldErrors.*</param>
</result>

关于java - 如何使用 Struts 2 框架构建自定义 JSON 错误响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26843974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com