如何在play 2框架中手动添加表单中的错误

use*_*758 13 playframework-2.0

我正在尝试addind表单中的一些错误,但我的代码不编译.
特别是,官方发挥2 api似乎不正确.
我们可以看到errors()返回validationError列表
http://www.playframework.com/documentation/api/2.0/java/play/data/Form.Field.html#errors()

无论如何,如果我尝试

 ValidationError e = new ValidationError("name", "user already exist",new ArrayList());
 filledForm.errors().add(e);
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,方法添加不存在.
我发现它是一个hashmap但是后面的代码不能编译:

 filledForm.errors().put("name","s");
Run Code Online (Sandbox Code Playgroud)

如何添加错误?谢谢

编辑:解决了感谢Julien Lafont

 ValidationError e = new ValidationError("name", "user already exist",new ArrayList());
 ArrayList<ValidationError> errors = new ArrayList<ValidationError>();
 errors.add(e);
 filledForm.errors().put("name",errors);
 return badRequest(loginForm.render(filledForm));
Run Code Online (Sandbox Code Playgroud)

Mar*_*rco 12

简短的方法是

filledForm.reject("name","user already exists");

return badRequest(loginForm.render(filledForm));


yok*_*zor 11

你可以使用withError:

filledForm.withError("name", "user already exist")
Run Code Online (Sandbox Code Playgroud)

您也可以添加全局错误:

filledForm.withGlobalError("eneric error")
Run Code Online (Sandbox Code Playgroud)

来自:https: //github.com/playframework/playframework/blob/3bebfa7c1226a438a687ec9a0a3e5c23e5aefa09/framework/src/play/src/main/scala/play/api/data/Form.scala#L252