Extjs4 を使用して、クラス フィールドをビュー フィールドにバインドしようとしています。フォームを送信して結果を返すことはできましたが、検証に失敗した場合に各フィールドの横にエラー メッセージを表示する方法がわかりません。これらのフィールドを自分のクラスに直接バインドしたいと思います (例: spring mvc で行うように - bindingResults.rejectValue("currentPassword", "currentPassword.incorrect", "Password is wrong"); ビューに表示されます)。
私のフォームパネル:
{
xtype : 'formpanel',
url: 'changePassword',
id : 'changePasswordForm',
method: 'POST',
success: function(){},
items : [{
xtype : 'fieldset',
id : 'passwordChange',
title : 'Change Password',
iconCls : 'user',
items : [{
xtype : 'passwordfield',
label : 'Current Password',
name : 'currentPassword',
id : 'currentPassword',
}, {
xtype : 'passwordfield',
label : 'New Password'
name : 'newPassword1',
id : 'newPassword1',
}, {
xtype : 'passwordfield',
label : 'Repeat Password',
name : 'newPassword2',
id : 'newPassword2',
},]
} ]
},{
xtype : 'button',
id: 'changePassword',
}
ボタンのクリック時に送信イベントを実行するコントローラー -
this.getChangePasswordForm().submit();
そして私のクラスは
@RequestMapping(value = "/changePassword", method = RequestMethod.POST)
public @ResponseBody String changePasswordInSettings(ChangePasswordForm changePasswordForm) {
User currentUser = User.find();
String enteredPSHash = HashUtil
.generateHash(changePasswordForm.getCurrentPassword(),
currentUser.getEmail());
String existingPSHash = currentUser.getPassword();
if(!enteredPSHash.equals(existingPSHash)) {
//bindingResults.rejectValue("currentPassword",
//"currentPassword.incorrect", "Password is incorrect");
}
if (!changePasswordForm.getNewPassword1().equals(changePasswordForm.getNewPassword2())) {
//bindingResults.rejectValue("newPassword2",
// "newPassword2.dontMatch", "Passwords dont match");
}
//if (!bindingResults.hasErrors()) {
String newPSHash = HashUtil.generateHash(changePasswordForm.getNewPassword1(),currentUser.getEmail());
currentUser.setPassword(newPSHash);
//model.addAttribute("successful", new Boolean(true)); //}
return "success";
}
ビューにエラー メッセージを表示するにはどうすればよいですか?