Playframework 2.x のエラーハンドリングTips
フォームの相関チェックを行う
Playframework公式ドキュメントで紹介されているValidation Methodを利用します。例えば、Sign-up form内で、パスワードと確認用パスワードが一致するかはこのようにして確認できます。
public Map<String, List<ValidationError>> validate() {
Map<String, List<ValidationError>> errors = null;
if (!pwd.equals(confPwd)) {
errors = new HashMap<String, List<ValidationError>>();
List<ValidationError> lists = new ArrayList<ValidationError>();
lists.add(new ValidationError("pwd", "error.pwdunmatched", new ArrayList<Object>()));
errors.put("pwd", list);
}
return errors;
}
個々のエラーメッセージを出力する
Annotationで行っている単項目や上記で紹介した方法で詰まれたエラーは以下の様に取得できます。
for(Entry<String, List<ValidationError>> entry : form.errors().entrySet()){
for(ValidationError validationError : entry.getValue()){
for(Object argument : validationError.arguments()){
System.out.println(validationError.argument, validationError.key, argument)
}
}
}
しかし、Controller側でエラーメッセージ取得することもないので、以下のような方法のでViewに出力方が良いかもしれませんね。
@(form: Form[_])
@import tags._
@if(form.hasErrors) {
@for(entry <- form.errors.entrySet){
@for(validationError <- entry.getValue){
@for(argument <- valicationError.arguments){
@Messages(validationError.message, Messages(validationError.key), Messages(argument))<br />
}
}
}
}
Author And Source
この問題について(Playframework 2.x のエラーハンドリングTips), 我々は、より多くの情報をここで見つけました https://qiita.com/tetsuya/items/4cdb8c6bed782daf2231著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .