dimanche 22 février 2015

Spring 4.0 form validation issue using AJAX

I am facing problem when i am doing server side form validation using jQuery and spring 4. Every time "result" (object of BindingResult) is coming with zero error result.


Below I am proving my code for better understanding. my jsp code is



<div class="registerForm">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">Please Register</h4>
</div>
<div class="modal-body">
<form class="form-signin" id="regForm" commandName="userRegister">
<div class="reg-error error"></div><div class="reg-success success"></div>
<input type="text" name="username" class="input-block-level" placeholder="Username">
<input type="text" name="emailAddress" class="input-block-level" placeholder="Email address">
<input type="text" name="confirmEmailAdd" class="input-block-level" placeholder="Confirm Email address">
<input type="password" name="password" class="input-block-level" placeholder="Password">
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary submitRegister">Register</button>
</div>
</div>


my script code is



$.ajax({
url: "${pageContext.request.contextPath}/register",
data: $('#regForm').serialize(),
type: "POST",
success: function(result) {},
error: function(XMLHttpRequest, textStatus, errorThrown){}
});


My controller code is



@RequestMapping(value="/register", method = RequestMethod.POST)
public @ResponseBody
ValidationResponse register(Model model, @ModelAttribute("userRegister") @Valid UserRegister userReg, BindingResult result) {
ValidationResponse res = new ValidationResponse();

if(result.hasErrors()){
res.setStatus("FAIL");
List<FieldError> allErrors = result.getFieldErrors();
List<ErrorMessage> errorMesages = new ArrayList<ErrorMessage>();
for (FieldError objectError : allErrors) {
errorMesages.add(new ErrorMessage(objectError.getField(), objectError.getField() + " " + objectError.getDefaultMessage()));
}
res.setErrorMessageList(errorMesages);

} else {
res.setStatus("SUCCESS");
}
return res;
}


My bean object



public class UserRegister {

@NotEmpty @NotNull
private String username;

@NotEmpty @NotNull
private String password;

@NotEmpty @Email @NotNull
private String emailAddress;

setter and getters....
}


Do i need to do any other configuration or something else to get it validated properly?


Aucun commentaire:

Enregistrer un commentaire