如何在play framework java中抛出自定义http错误
下面是保存数据的代码。如果验证失败,我想抛出http错误代码422。但我得到了200(OK)的回复。如何做到这一点。谢谢如何在play framework java中抛出自定义http错误,java,playframework,Java,Playframework,下面是保存数据的代码。如果验证失败,我想抛出http错误代码422。但我得到了200(OK)的回复。如何做到这一点。谢谢 public Result saveBook() { Form<Book> bookForm = formFactory.form(Book.class).bindFromRequest(); if(bookForm.hasErrors()) { List<String>
public Result saveBook()
{
Form<Book> bookForm = formFactory.form(Book.class).bindFromRequest();
if(bookForm.hasErrors())
{
List<String> validationError = new ArrayList<>();
ObjectNode result = Json.newObject();
result.put("code", 422);
result.put("status", "error");
for(ValidationError e: bookForm.allErrors())
{
validationError.add(e.message());
}
result.put("errors", Json.toJson(validationError));
return ok(result);
}
Book book = bookForm.get();
book.save();
return ok(Json.toJson(book));
}
公共结果存储簿()
{
Form bookForm=formFactory.Form(Book.class).bindFromRequest();
if(bookForm.hasErrors())
{
List validationError=新建ArrayList();
ObjectNode result=Json.newObject();
结果.付诸表决(“代码”,422);
结果。放置(“状态”、“错误”);
对于(ValidationError e:bookForm.allErrors())
{
validationError.add(例如message());
}
put(“errors”,Json.toJson(validationError));
返回ok(结果);
}
Book Book=bookForm.get();
book.save();
返回ok(Json.toJson(book));
}
此行:
return ok(result);
。。。正在告诉Play返回ok
(即HTTP状态200)结果
该类提供快捷方式,例如:
ok()
notFound()
badRequest()
internalServerError()
status(422,“…”)
所以,只要替换
return ok(result);
。。。与:
return status(422, "your chosen status message");
这一行:
return ok(result);
。。。正在告诉Play返回ok
(即HTTP状态200)结果
该类提供快捷方式,例如:
ok()
notFound()
badRequest()
internalServerError()
status(422,“…”)
所以,只要替换
return ok(result);
。。。与:
return status(422, "your chosen status message");
只需替换
返回ok(Json.toJson(book))代码>返回状态(422)
或者您可以使用下面的链接查看除了最简单的状态(422)表单之外,您还有哪些其他选项。
只需替换
返回ok(Json.toJson(book))代码>返回状态(422)
或者您可以使用下面的链接查看除了最简单的状态(422)表单之外,您还有哪些其他选项。
非常感谢您。我得到了与我所期待的相同的回应。非常感谢你。我得到了与我所期待的相同的回应。谢谢