当前位置: 首页 > 知识库问答 >
问题:

BindingResult 和 Bean 名称“user”的纯目标对象都不能用作请求属性 HTTP 状态 500

盛嘉
2023-03-14

我正在使用 spring 和Hibernate构建一个应用程序。

我认为有一个问题与模型属性,但我不知道什么是错的。

这是我的代码:

<html>
    <head>
        <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-2">
        <title>Dziennik pracy</title>
    </head>
        <body>
             <form:form id="loginForm" modelAttribute="user" action="loginUser" method="post">

                       <form:input path="userName"/>
                       <form:input path="password"/>

            </form:form>
        </body>
    </html>

我的控制器:

@Controller
@RequestMapping("/user")
public class UserController {


    @RequestMapping("/showLogin")
    public String showLoginPanel() {
        return "login-user";
    }

    @RequestMapping("/loginUser" )
    public String loginUser(@ModelAttribute("user") User user, Model theModel) {
            theModel.addAttribute("user", new User());
            return "user-panel";
    }
}

我的实体

@Entity
public class User {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="id")
    int id;

    @Column(name="user_name")
    String userName;

    @Column(name="password")
    String password;

这是错误:

共有2个答案

谢锦程
2023-03-14

jsp文件中,您已经使用了spring form标记,

 <form:form id="loginForm" modelAttribute="user" action="loginUser" method="post">

在这里要将Spring表单与用户模型实体映射,您需要在表单标签中使用属性命令名称="user",因此标签将是,

<form:form id="loginForm" commandName="user" action="loginUser" method="post">

尝试上述解决方案。

容修贤
2023-03-14

尝试在方法签名中添加绑定结果对象。

public String loginUser(@ModelAttribute("user") User user,BindingResult result, Model theModel) {
            theModel.addAttribute("user", new User());
            return "user-panel";
}
 类似资料: