ロマンLelaure:
私はこのチュートリアルを使用していた。tymeleafと春ブーツCRUDアプリケーションを
問題は、私は、ユーザーが持っていたしようとすると、私はこのエラーを得た起こります。
2020-03-15 09:51:09.413 ERROR 10168 --- [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerExceptionが:com.CRUD.CRUD_EXAMPLE.controller.UserController.addUser(UserController.java:33)のヌル〜[クラス/:NA]
ここで、コードは次のとおりです。「」」
@Controller
public class UserController {
private UserRepository userRepository;
@GetMapping("/signup")
public String showSignUpForm(User user) {
return "add-user";
}
@PostMapping("/adduser")
public String addUser(@Valid User user, BindingResult result, Model model) {
if (result.hasErrors()) {
return "add-user";
}
userRepository.save(user);
model.addAttribute("users", userRepository.findAll());
return "index";
}
@GetMapping("/edit/{id}")
public String showUpdateForm(@PathVariable("id") long id, Model model) {
User user = userRepository.findById(id)
.orElseThrow(() -> new IllegalArgumentException("Invalid user Id:" + id));
model.addAttribute("user", user);
return "update-user";
}
@PostMapping("/update/{id}")
public String updateUser(@PathVariable("id") long id, @Valid User user,
BindingResult result, Model model) {
if (result.hasErrors()) {
user.setId(id);
return "update-user";
}
userRepository.save(user);
model.addAttribute("users", userRepository.findAll());
return "index";
}
@GetMapping("/delete/{id}")
public String deleteUser(@PathVariable("id") long id, Model model) {
User user = userRepository.findById(id)
.orElseThrow(() -> new IllegalArgumentException("Invalid user Id:" + id));
userRepository.delete(user);
model.addAttribute("users", userRepository.findAll());
return "index";
}
}
「」」
マイライン33「をuserRepository.save(ユーザー)」です。
ピーターBivolarski:
あなたのUserRepositoryマークしてください実装したクラスを@Repository
このように、注釈:
@Repository
public class UserRepositoryImpl implements UserRepository {
その後経由で依存関係を注入@Autowired
、このようなあなたのコントローラに注釈:
@Controller
public class UserController {
private UserRepository userRepository;
@Autowired
public UserController(UserRepository userRepository) {
this.userRepository = userRepository;
}
これはあなたの問題を解決しますNullPointerException
春は今、あなたのため、この依存関係を作成し、注入しますので、。