Java spring引导-在JSP中显示来自控制器的对象数据

Java spring引导-在JSP中显示来自控制器的对象数据,java,spring-boot,h2,Java,Spring Boot,H2,我有一个用户类,两个JSP和一个控制器。我想注册一个用户,将其详细信息存储在数据库(H2)中,并在注册后显示用户名 这是我的home.jsp- <form action="addUser"> <label>Name: </label><input type="text" name="name"/> <label>Id: </label><inp

我有一个用户类,两个JSP和一个控制器。我想注册一个用户,将其详细信息存储在数据库(H2)中,并在注册后显示用户名

这是我的
home.jsp
-

<form action="addUser">
    <label>Name: </label><input type="text" name="name"/>
    <label>Id: </label><input type="number" name="id"/>
    <input type="submit" />
</form>
Registered as ${obj.name}
这是我的
afterRegister.jsp
-

<form action="addUser">
    <label>Name: </label><input type="text" name="name"/>
    <label>Id: </label><input type="number" name="id"/>
    <input type="submit" />
</form>
Registered as ${obj.name}

对象被添加到数据库中。在下一个JSP中显示数据时,我做错了什么?

很可能您不知道添加的用户的ID,这就是为什么您的
findById
总是返回
null
。只需从
save()
方法返回用户即可。显示您的用户实体

@RequestMapping("addUser")
public String addUser(@RequestParam int id, User usr, Model model)
{
    User obj = usrrepoobj.save(usr);
    model.addAttribute("obj", obj);
    
    return "afterRegister.jsp";
}

在控制器中进行以下更改:

usrrepoobj.save(usr);
        User obj = usrrepoobj.findById(id).orElse(null);
        ModelAndView mv = new ModelAndView();
        mv.addObject("object",obj); //change this
        mv.setViewName("afterRegister.jsp");
在afterRegister.jsp中-

Registered as ${object.name}