package com.sheetsj.signup; import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.validation.Errors; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.sheetsj.account.*; import com.sheetsj.support.web.*; @Controller public class SignupController { @Autowired private AccountRepository accountRepository; @Autowired private UserService userService; @RequestMapping(value = "signup") public SignupForm signup() { return new SignupForm(); } @RequestMapping(value = "signup", method = RequestMethod.POST) public String signup(@Valid @ModelAttribute SignupForm signupForm, Errors errors, RedirectAttributes ra) { if (errors.hasErrors()) { return null; } Account account = accountRepository.save(signupForm.createAccount()); userService.signin(account); MessageHelper.addSuccessAttribute(ra, "Congratulations! You have successfully signed up."); return "redirect:/"; } }