首页 > 解决方案 > Spring Boot 注入失败

问题描述

我想将一个包含用户的类注入到新对象中。

    @GetMapping
    public String listTopic(Principal principal, Model model){


        Optional<Users> user = usersService.findByUsername(principal.getName());

        if (user.isPresent()){
            Topics topic = new Topics();
            topic.setUsers(user.get());

            model.addAttribute("newTopic", topic);
            model.addAttribute("topics", topicsService.listTopics());

            return "forum/forum";
        }

        return "/error";
    }

    @PostMapping
    public String addTopic(@Valid @ModelAttribute("newTopic") Topics topic, BindingResult bindingResult){

        if(bindingResult.hasErrors()){
            return "forum/forum";
        }
        topicsService.addTopic(topic);
        System.out.println(topic);
        return "redirect:/forum";
    }

当我在设置用户 obect 或在 getmapping 部分添加属性后通过 sysout 时,它会向我显示确切的对象,但是当我想在 postmapping 中查看它时,它会抛出 nullpointerexception。

标签: javaspringspring-boot

解决方案


您的模型是一个请求范围对象。每次请求后它都会丢失。您需要将此信息传递给通过同一会话中的不同请求而处于活动状态的会话对象

https://stackoverflow.com/a/18795626/7237884


推荐阅读