1

I'm getting a NullPointerException in these @ModelAttribute variables.

Here is my code:

@RequestMapping(value="/newUser", method=RequestMethod.POST) public String newUser(@Validated @ModelAttribute("user") User user, BindingResult userBindingResult, @Validated @ModelAttribute("credentials") Credentials credentials, BindingResult credentialsBindingResult, @Validated @ModelAttribute("contacts") Contacts contacts, BindingResult contactsBindingResult, @Validated @ModelAttribute("address") Address address, BindingResult addressBindingRusult, Model model) { this.userValidator.validate(user, userBindingResult); this.credentialsValidator.validate(credentials, credentialsBindingResult); this.contactsValidator.validate(contacts, contactsBindingResult); this.addressValidator.validate(address, addressBindingRusult); if (!userBindingResult.hasErrors() && !credentialsBindingResult.hasErrors() && !contactsBindingResult.hasErrors() && !addressBindingRusult.hasErrors()) { user.setContacts(contacts); user.setAddress(address); credentials.setUser(user); credentials.setRole(Credentials.DEFAULT_ROLE); credentials.setPassword(passwordEncoder.encode(credentials.getPassword())); credentials.setEnabled(true); credentialsService.saveCredentials(credentials); return "redirect:/dashboard?successUser"; } else { return "redirect:/dashboard?errorUser"; } } 

I added to the model these attributes in a previous GET method when the page loads and I checked in Chrome console that data are sent through by the form. Here is part of my code for the GET method:

@RequestMapping(value= {"/dashboard"}, method= RequestMethod.GET) public String loadDashboardPage (Model model) { /*Users signup*/ model.addAttribute("user", new User()); model.addAttribute("credentials", new Credentials()); model.addAttribute("contacts", new Contacts()); model.addAttribute("address", new Address()); return "dashboard"; } 

Here is the error I got in my Eclipse console:

java.lang.NullPointerException: null at com.applicationSample.App.validator.userValidator.validate(UserValidator.java:46) ~[classes/:na] at com.applicationSample.App.controller.SignupController.newUser(SignupController.java:144) ~[classes/:na] 

Here you can find the code for the Validator class:

@Override public void validate(Object target, Errors errors) { User user = (User) target; String name = user.getName().trim(); String surname = user.getSurname().trim(); if (name.isEmpty()) { errors.rejectValue("name", "required"); } if (surname.isEmpty()) { errors.rejectValue("surname", "required"); } } 

I'm using Thymeleaf in my html files to bind data. Also I've already used that approach in a similar method and it's working fine. I can't see where the error could be, any help?

2
  • Based on the provided log - there is a NullPointerException thrown in UserValidator.java at line 46. It would be useful to provide actual code of that class Commented Feb 19, 2021 at 22:46
  • I see what u mean, but I want you to remember that I already used that approach in a very similar method in the same project and it that case is working. The validator is always the same that I used. Btw I'm going to edit in order to add actual code of that class too. Commented Feb 19, 2021 at 22:55

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.