我正在使用Struts创建Web应用程序。当请求网址格式不正确时,我想发出如下错误的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错误响应。我可以想到下面的方法。
在操作类中使用错误响应对象,并显式设置所有名称必需的名称值对
private Map<String, String> errorObject; public String execute() { ... if (aggregationId == -1) { errorObject = new HashMap<>(); errorObject.put("status", "400"); errorObject.put("code", "40924"); ... return INPUT; } ... }
然后,我可以只处理序列化errorObject在我的struts.xml。
errorObject
struts.xml
我是Struts的新手,想知道是否有确定的方法来做到这一点?也许可以更好地利用Struts框架。
Struts2 actionErrors,fieldErrors由ActionSupport。您可以填写操作错误,也可以由验证拦截器产生。例如
actionErrors
fieldErrors
ActionSupport
addFieldError("aggregation", “aggregationId not specified.”); addFieldError("moreInfo", “https://www.iiitb-swn.com/docs/api/errors/40924”);
然后返回json结果作为响应。
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>